問題があります。私は他のテーブルの他の列を参照する私のテーブルに新しい列を追加したい。私はそのような何か:テーブルに外部キーを持つ列を追加する。
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"から "管理者"の外部キーを作りたがっていました。あなたが私を助けてくれるのですが、何が間違っているのですか?
を試してみてくださいしかし、そこの行は、それがこのテーブルのPKだ15に等しいidを持つ人であり、このIDを持つ人をイム。そして、このPKは、ローンでFKであると思われる人からです。 – Speedvees
あなたは間違いをしているにちがいありません。エラーメッセージには、 'ALTER TABLE 'が実行された時点で、' person'は 'id'を持っていなかったと疑う余地はありません。15.間違ったデータベースを見ましたか? ifferentスキーマに複数のテーブル 'person 'がありますか? –