簡體   English   中英

在Codeigniter遷移中添加外鍵

[英]add foreign key in Codeigniter migration

有人可以幫我添加外鍵和Codeigniter遷移數據庫嗎? 這是代碼:

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'作為Forein Key。 我該如何解決這個問題?

這有兩種方法可以做到這一點。 第一個使用create_table,另一個可以在向現有表添加字段時完成。

$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)',
]);

您可以編寫一個普通的SQL查詢來執行此操作

$this->dbforge->create_table('pelayanan');

見下面的例子

$this->db->query('ALTER TABLE `pelayanan` ADD FOREIGN KEY(`ID_AREA`) REFERENCES 'the_other_table_name'(`ID_AREA`) ON DELETE CASCADE ON UPDATE CASCADE;');

您可以對其他外鍵執行相同操作

有人在這里創建了一種方法: https//github.com/bcit-ci/CodeIgniter/issues/1762 不幸的是,到目前為止,你還是無法用開箱即用的codeigniter來做到這一點。 @ Godluck的方式也很好用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM