我发现此线程类似于我的查询 How to Link Foreign Key with Different Name 但不幸的是,与答案,我的问题没有得到解决。就我的表格示例而言,它不会创建任何主键。所有外键只。MySQL使用相同的外键为两个不同的表列
下面是代码:
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)
);
它给我:
错误号:150 “外键约束的格式不正确”
这里我使用USER_ID两次第一个为“user_id”,第二个为“ref_id”。还使用firstname作为“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
可以肯定的是,在外键错误之后立即检查了它? –