Codeigniter 如何在dbforge中在另一列之前添加列?
我想在3个数据库表中添加名为“accept_loc”的列,键入“VARCHAR”(使用codeigniter中的dbforge库),因为它们的名称分别为t1、t2、t3 t1结构:Codeigniter 如何在dbforge中在另一列之前添加列?,codeigniter,dbforge,Codeigniter,Dbforge,我想在3个数据库表中添加名为“accept_loc”的列,键入“VARCHAR”(使用codeigniter中的dbforge库),因为它们的名称分别为t1、t2、t3 t1结构: 身份证 诸如此类 提货地点 t2结构: 身份证 提货地点 t3结构: 身份证 诸如此类 提货地点 如果我在向上迁移函数中使用以下代码: $fields = array( 'accept_lat' => array( 'accept_loc' =>
- 身份证
- 诸如此类
- 提货地点
- 身份证
- 提货地点
- 身份证
- 诸如此类
- 提货地点
$fields = array(
'accept_lat' => array(
'accept_loc' => 'VARCHAR',
'constraint' => '50',
'after' => 'id',
),
);
$this->dbforge->add_column('t1',$fields);
$this->dbforge->add_column('t2',$fields);
$this->dbforge->add_column('t3',$fields);
结果:
t1结构:
- 身份证
- 接受
- 诸如此类
- 提货地点
- 身份证
- 接受
- 提货地点
- 身份证
- 接受
- 诸如此类
- 提货地点
这不是一个好看的结构。如何将“pick_up_loc”之前的列添加到所有表中(n个数据库表)。请尝试将after大写,即“after”,在键被修复后,
中有一个bug
请尝试将after大写,即'after',在after
键中有一个bug,已修复
add_column()中的第三个参数是$after_字段。因此,您不能在另一列之前添加列,但您可以这样做:
$this->dbforge->add_column('t1', $fields, 'bla_bla');
$this->dbforge->add_column('t2', $fields, 'id');
$this->dbforge->add_column('t3', $fields, 'bla_bla');
此外,您似乎将字段命名为“accept\u lat”,然后使用“accept\u loc”而不是“type”元素,这会使事情变得混乱。add\u column()中的第三个参数是$after\u field。因此,您不能在另一列之前添加列,但您可以这样做:
$this->dbforge->add_column('t1', $fields, 'bla_bla');
$this->dbforge->add_column('t2', $fields, 'id');
$this->dbforge->add_column('t3', $fields, 'bla_bla');
此外,您似乎将字段命名为“accept\u lat”,然后使用“accept\u loc”而不是“type”元素,这会使事情变得混乱。晚会迟到,但为了澄清您的代码,例如t1上的代码,应该如下所示:
$fields = array(
'accept_lat' => array('type' => 'TEXT')
);
$this->dbforge->add_column('t1', $fields, 'id');
因此,accept_lat将添加到表t1中的id列之后 派对迟到,但为了澄清您的代码,例如t1,应该如下所示:
$fields = array(
'accept_lat' => array('type' => 'TEXT')
);
$this->dbforge->add_column('t1', $fields, 'id');
因此,accept_lat将添加到表t1中的id列之后