我想添加名为'accept_loc'的列,类型'VARCHAR'到3个数据库表(使用codeigniter的dbforge库)假设它们被命名为t1,t2,t3。
t1结构:
- id
- bla_bla
- 拾取位置
- ....
t2结构: - id
- 拾取位置
- ....
t3结构: - id
- bla_bla
- 拾取位置
- ....
如果我在向上迁移函数中使用以下代码:
$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结构:
- id
- 接受锁定
- bla_bla
- 拾取位置
- ....
t2结构: - id
- 接受锁定
- 拾取位置
- ....
t3结构: - id
- 接受锁定
- bla_bla
- 拾取位置
- ....
这不是一个好看的结构。我如何在所有的数据库表(n个数据库表)中添加pick_up_loc之前的列。
4条答案
按热度按时间cngwdvgl1#
请尝试将后大写,即'AFTER',有一个错误,在该
after
键,并提到得到修复here .imzjd6km2#
add_column()中的第三个参数是$after_field。所以你不能在另一列之前添加列**,但你可以这样做:
另外,你似乎命名字段'accept_lat',然后使用'accept_loc'而不是'type'元素,这让人感到困惑。
aiazj4mn3#
迟到了,但为了澄清你的代码,例如在t1上,应该看起来像这样:
所以accept_lat将被添加到表t1中的id列之后。
prdp8dxp4#
根据我们的评估,问题似乎与我们产品的功能无关。
请参阅https://codeigniter.com/userguide3/database/forge.html上的文档
请注意文档中提供的以下示例-它应该可以帮助您解决问题。
$this->dbforge->add_field(“"“label varchar(100)NOT NULL DEFAULT 'default label'""”);
如果问题仍然存在并且与我们的软件有关,请填写下面的表格。向我们提供问题的详细描述以及您所采取的措施。另外,请附上相关的屏幕截图,以帮助我们更好地理解这个问题。
请注意,您需要使用最新版本的dbForge Studio。