このスレッドは私の質問と同様です How to Link Foreign Key with Different Name しかし残念ながら、答えでは、私の問題は解決されませんでした。私のテーブルの例では、プライマリキーは作成されません。すべての外部キーのみ。2つのテーブルの列に同じ外部キーを使用
CREATE TABLE ref_data(
user_id INT(11) NOT NULL,
ref_id INT(11) NOT NULL,
ref_name VARCHAR(30) NOT NULL,
ref_date datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT FK_user_id FOREIGN KEY(user_id) REFERENCES client (user_id),
CONSTRAINT FK_ref_id FOREIGN KEY(ref_id) REFERENCES client (user_id),
CONSTRAINT FK_ref_name FOREIGN KEY(ref_name) REFERENCES client (firstname)
);
それは私与えます:ここで
はコードであるにerrno:150ここで
私は2回をuser_idを使用しています "外部キー制約が正しく形成されています" firstが "user_id"として2番目が "ref_id"になりました。 first_nameを "ref_name"としても使用します。
クライアントテーブル:
CREATE TABLE client (
`user_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`username` VARCHAR(30) NOT NULL UNIQUE KEY,
`email` VARCHAR(50) NOT NULL UNIQUE KEY,
`firstname` VARCHAR(30) NOT NULL,
`lastname` VARCHAR(30) NOT NULL,
`password` CHAR(128) NOT NULL
);
詳細については、そのエラーが発生した後で 'SHOW ENGINE InnoDB STATUS'を実行することができます。 –
私はそれを実行します: =================== 2017-07- 13 ... – mimi
確かに、それは外部キーエラーの直後にチェックされましたか? –