我想在3个数据库表中添加名为“accept_loc”的列,输入'VARCHAR‘(从codeigniter使用dbforge库),并将它们命名为t1、t2、t3。
t1结构:
t2结构:
t3结构:
如果我在迁移up函数中使用了下面的代码:
$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结构:
t2结构:
t3结构:
这不是个好看的结构。如何在“pick_up_loc”之前添加列到所有列(n个数据库表)。
发布于 2017-09-25 03:12:27
请试着把后大写,即‘后’,有一个错误在那个after键,并提到得到了固定的这里。
$fields = array(
'accept_lat' => array(
'accept_loc' => 'VARCHAR',
'constraint' => '50',
'AFTER' => 'id'
)
);发布于 2018-07-19 15:51:30
add_column()中的第三个参数是$after_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_lat”,然后使用“accept_loc”而不是“type”元素,这会使事情变得很混乱。
发布于 2019-11-26 09:34:55
聚会晚了,但是为了澄清您的代码(例如,在t1上),应该如下所示:
$fields = array(
'accept_lat' => array('type' => 'TEXT')
);
$this->dbforge->add_column('t1', $fields, 'id');因此,accept_lat将在表t1的id列之后添加。
https://stackoverflow.com/questions/46396780
复制相似问题