我有一些问题。我想添加新的列到我的表中引用其他表中的其他列。我做这样的事情:将外键列添加到表中。
class m161202_153033_dodanie_informacji_o_obsludze_prawnej_do_pozyczki extends CDbMigration
{
public function safeUp()
{
$this->execute("ALTER TABLE loan ADD COLUMN administrator int NOT NULL DEFAULT 15 REFERENCES person (id) ON UPDATE CASCADE ON DELETE NO ACTION;");
}
public function safeDown()
{
$this->execute("ALTER TABLE loan DROP COLUMN administrator;");
}
}
但是当我尝试执行此迁移我有此错误:
Foreign key violation: 7 DETAIL: Key (administrator)=(15) doesn't appear in table "person"..
我知道,有没有在我的表列吸“管理员”。但我想添加新的列“管理员”到贷款表中。我想从人员表,列“id”中创建“管理员”外键。你能帮助我吗?我做错了什么?
但有行的人,ID为15.这是PK在此表中,并与该ID即时通讯的人。而这个人PK应该是FK贷款。 – Speedvees
你一定犯了错误。错误消息毫无疑问地表明,在'ALTER TABLE'运行时,没有'person'有'id' 15.你看错了数据库吗?在不同的模式中是否有多个表格“person”? –