mysql报错1027
在浏览大佬文档中,运行mysql语句时发现报错,报错描述:[Err] 1072 - Key column 'sID' doesn't exist in table,译为表中不存在键列'sID',报错的创表代码如下:
CREATE TABLE Storage
(sD CHAR(6),
gID CHAR(6),
storageQUA INT,
storageTIME DATETIME,
safetystorageQUA CHAR(10),
PRIMARY KEY(sID,gID),
FOREIGN KEY (sID) REFERENCES store(sID),
FOREIGN KEY (gID) REFERENCES goods(gID)
)
sID在store表中为主键,小白想通过将该主键设置其他表的外键,关联两个表格,store表如下:
mysql> desc store;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| sID | char(6) | NO | PRI | NULL | |
| sADD | varchar(8) | YES | | NULL | |
| sLEAD | varchar(4) | YES | | NULL | |
+-------+------------+------+-----+---------+-------+
小白猜测代码报错有三个可能:
1.mysql中不能把主键和外键设为一个;
2.mysql中的列不匹配;
3.mysql的外键不能同时设置两个;
排查到最后,发现问题出现在第二行定义那里,改正如下:
CREATE TABLE Storage
(sID CHAR(6),
gID CHAR(6),
storageQUA INT,
storageTIME DATETIME,
safetystorageQUA CHAR(10),
PRIMARY KEY(sID,gID),
FOREIGN KEY (sID) REFERENCES store(sID),
FOREIGN KEY (gID) REFERENCES goods(gID)
)
原来这个sID是没有在建的这个表里命名,并不是store。 错误分析:都没有定义id,当然不可能成为主键啦。
图片用img标签改不了大小,编辑器还在学呜呜呜,你看大猫咪也很可爱喵