【发布时间】:2020-08-07 14:11:38
【问题描述】:
我在 mariadb 中创建了两个表。 stored_on 关系将书架和书籍联系在一起。一切正常,除了我将 lib_floor 添加到存储的关系中,这个错误突然出现了。当我从存储在主键上的 lib_floor、lib_floor 的外键定义和 lib_floor 中删除时,没有问题。有任何想法吗?数据类型相同(INT)。
CREATE TABLE shelf (
shelf_number INT NOT NULL,
lib_name VARCHAR(50) NOT NULL,
lib_floor INT NOT NULL,
FOREIGN KEY (lib_name) REFERENCES library (lib_name) ON DELETE CASCADE,
PRIMARY KEY (shelf_number,lib_name,lib_floor)
);
CREATE TABLE stored_on (
shelf_number INT NOT NULL,
lib_name VARCHAR(50) NOT NULL,
lib_floor INT NOT NULL,
isbn VARCHAR(20) NOT NULL,
total_copies INT NOT NULL,
FOREIGN KEY (shelf_number) REFERENCES shelf (shelf_number) ON DELETE CASCADE,
FOREIGN KEY (lib_name) REFERENCES shelf (lib_name) ON DELETE CASCADE,
FOREIGN KEY (lib_floor) REFERENCES shelf (lib_floor) ON DELETE CASCADE,
FOREIGN KEY (isbn) REFERENCES book (isbn) ON DELETE CASCADE,
PRIMARY KEY (shelf_number,lib_name,lib_floor,isbn)
);
警告 1:
|警告 | 150 |创建表 ... .
stored_on与 外键约束失败。引用中没有索引 引用的列显示为附近的第一列的表 '外键 (lib_floor) 参考书架 (lib_floor) ON DELETE 级联, FOREIGN KEY (isbn) 参考书 (isbn) ON DELETE CASCADE, 主键 (shelf_number,lib_name,lib_floor,isbn) )'。 |
错误 1:
|错误 | 1005 |无法创建表 ...
stored_on(errno: 150 "外键约束格式不正确")
警告 2:
警告 | 1215 |无法添加外键约束
stored_on
【问题讨论】: