首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在dbforge中的另一列之前添加列?

如何在dbforge中的另一列之前添加列?
EN

Stack Overflow用户
提问于 2017-09-25 02:27:39
回答 3查看 2.4K关注 0票数 1

我想在3个数据库表中添加名为“accept_loc”的列,输入'VARCHAR‘(从codeigniter使用dbforge库),并将它们命名为t1、t2、t3。

t1结构:

  • id
  • bla_bla
  • pick_up_loc
  • ……

t2结构:

  • id
  • pick_up_loc
  • ……

t3结构:

  • id
  • bla_bla
  • pick_up_loc
  • ……

如果我在迁移up函数中使用了下面的代码:

代码语言:javascript
复制
$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
  • accept_loc
  • bla_bla
  • pick_up_loc
  • ……

t2结构:

  • id
  • accept_loc
  • pick_up_loc
  • ……

t3结构:

  • id
  • accept_loc
  • bla_bla
  • pick_up_loc
  • ……

这不是个好看的结构。如何在“pick_up_loc”之前添加列到所有列(n个数据库表)。

EN

回答 3

Stack Overflow用户

发布于 2017-09-25 03:12:27

请试着把后大写,即‘后’,有一个错误在那个after键,并提到得到了固定的这里

代码语言:javascript
复制
    $fields = array(
        'accept_lat' => array(
            'accept_loc' => 'VARCHAR',
            'constraint' => '50',
            'AFTER' => 'id'
        )
    );
票数 1
EN

Stack Overflow用户

发布于 2018-07-19 15:51:30

add_column()中的第三个参数是$after_field。因此,不能在另一列之前添加列,但可以这样做:

代码语言:javascript
复制
$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”元素,这会使事情变得很混乱。

票数 1
EN

Stack Overflow用户

发布于 2019-11-26 09:34:55

聚会晚了,但是为了澄清您的代码(例如,在t1上),应该如下所示:

代码语言:javascript
复制
 $fields = array(
            'accept_lat' => array('type' => 'TEXT')
);
    $this->dbforge->add_column('t1', $fields, 'id');

因此,accept_lat将在表t1的id列之后添加。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46396780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档