Err 1064参考第8行mysql

时间:2013-01-14 11:58:24

标签: mysql reference

嘿伙计们,我对整个mysql世界都是新手,我当前遇到的问题是我无法解决为什么这不起作用是否可能与2个主键有关?或者它是参考?提前致谢

CREATE TABLE IsSeenBy 
(  PatientCode int (11) NOT NULL,
   DoctorCode int (11) NOT NULL,
   Date VARCHAR (10) NOT NULL, 
   Time VARCHAR (5) NOT NULL,
   PRIMARY KEY (PatientCode), 
   PRIMARY KEY (DoctorCode),
   PatientCode REFERENCES (Patient),
   DoctorCode REFERENCES (Doctor)
;

2 个答案:

答案 0 :(得分:0)

表格中不能有2个PK。如果你想要复合PK使用

PRIMARY KEY (PatientCode, DoctorCode), 

代替。

您也必须浏览外键参考文档。

答案 1 :(得分:0)

日期是一个保​​留字,所以如果你想命名一个你需要引用它的列。另外,我强烈建议为该列使用实际的日期类型,而不是VARCHAR。 (除非它需要像星期一样。)是的,你不能有两个主键。你需要一个或一个复合的。您的外键定义看起来不正确

CREATE TABLE IsSeenBy 
(PatientCode int (11) NOT NULL,
DoctorCode int (11) NOT NULL,
`Date` DATETIME NOT NULL,
PRIMARY KEY (PatientCode, DoctorCode),
FOREIGN KEY (PatientCode)
REFERENCES Patient(PatientCode)
ON UPDATE CASCADE ON DELETE RESTRICT,
FOREIGN KEY (DoctorCode)
REFERENCES Doctor(`DoctorCode`)
ON UPDATE CASCADE ON DELETE RESTRICT

);