私は2つのテーブルtable1とtable2を持っています table1はIDと名前を持ち、table2はID、インスタンス(外部キーfromtable1)、ホスト名1とホスト名feildsを持っています。私はそれは私にエラーをスローする外部キーを持つテーブル2を作成しようとしていますとき 外部キー制約が間違って形成されているmysql
mysql> CREATE TABLE table1 (
-> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> name VARCHAR(50)
->);
TABLE1
を作成"ERROR 1005 (HY000): Can't create table `databasename`.`table2` (errno: 150 "Foreign key constraint is incorrectly formed")"
コードが
mysql> CREATE TABLE table2(
-> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> instance VARCHAR(50) NOT NULL,
-> hostname1 VARCHAR(50) NOT NULL,
-> hostname2 VARCHAR(50) NOT NULL,
-> CONSTRAINT `fk_name`
-> FOREIGN KEY(instance) REFERENCES table1(name)
-> ON DELETE CASCADE
-> ON UPDATE RESTRICT
->);
は私が間違って何をやっていますここに?
一意である必要があります に名前を付ける必要がある場合(あるいは少なくとも、本当に、本当にべきではありません)特有のものではない列または主キーを参照。 – fredrik
私の答えを確認 –