首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Codeigniter迁移中添加外键

在Codeigniter迁移中添加外键
EN

Stack Overflow用户
提问于 2015-07-05 11:46:05
回答 3查看 11.6K关注 0票数 10

有没有人可以帮我在Codeigniter迁移数据库中添加外键?代码如下:

代码语言:javascript
复制
public function up()
{
    $this->dbforge->add_field(array(
    'ID_PELAYANAN' => array(
    'type' => 'INT',
    'constraint' => 50,
    'auto_increment' => TRUE
    ),

    'THBLMUT' => array(
    'type' => 'VARCHAR',
    'constraint' => '6',
    ),

    'ID_DIST' => array(
    'type' => 'VARCHAR',
    'constraint' => '2',
    ),

    'ID_AREA' => array(
    'type' => 'VARCHAR',
    'constraint' => '5',
    ),

    'ID_RAYON' => array(
    'type' => 'VARCHAR',
    'constraint' => '5',
    ),

    'N_RAYON' => array(
    'type' => 'CHAR',
    'constraint' => '70',
    ),

    ));
    $this->dbforge->add_key('ID_PELAYANAN', TRUE);
    $this->dbforge->create_table('pelayanan');
}
public function down()
{
    $this->dbforge->drop_table('pelayanan');
    }
}

我想把'ID_AREA','ID_RAYON‘作为这个表中的前缀关键字。我该如何解决这个问题?

EN

回答 3

Stack Overflow用户

发布于 2016-04-29 23:20:56

这里有两种方法可以做到这一点。第一种方法适用于create_table,另一种方法可以在向现有表中添加字段时完成。

代码语言:javascript
复制
$this->dbforge->add_field('CONSTRAINT FOREIGN KEY (id) REFERENCES table(id)');

$this->dbforge->add_column('table',[
    'CONSTRAINT fk_id FOREIGN KEY(id) REFERENCES table(id)',
]);
票数 15
EN

Stack Overflow用户

发布于 2016-02-13 18:10:27

之后,您可以编写一个普通的SQL查询来执行此操作

代码语言:javascript
复制
$this->dbforge->create_table('pelayanan');

请参见下面的示例

代码语言:javascript
复制
$this->db->query('ALTER TABLE `pelayanan` ADD FOREIGN KEY(`ID_AREA`) REFERENCES 'the_other_table_name'(`ID_AREA`) ON DELETE CASCADE ON UPDATE CASCADE;');

您可以对另一个外键执行相同的操作

票数 3
EN

Stack Overflow用户

发布于 2016-03-16 05:00:19

有人在这里创造了一种方法:https://github.com/bcit-ci/CodeIgniter/issues/1762。不幸的是,到目前为止,你仍然不能使用开箱即用的codeigniter来做到这一点。@Godluck的方式也运行得很好。

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

https://stackoverflow.com/questions/31226971

复制
相关文章

相似问题

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