Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Err 1064引用第8行mysql_Mysql_Reference - Fatal编程技术网

Err 1064引用第8行mysql

Err 1064引用第8行mysql,mysql,reference,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),

嘿,伙计们,我对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个PK。如果您想要复合PK,请使用

PRIMARY KEY (PatientCode, DoctorCode), 
相反


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

日期是一个保留字,因此如果您想命名列,则需要引用它。另外,我强烈建议为该列使用实际日期类型,而不是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

);

看起来你错过了一个很近的括号“)”谢谢你的建议,我仍然得到同样的错误,因为我认为参考部分。非常感谢你的帮助,非常感谢。日期和时间部分看起来比我想要的要好得多,我不知道你可以有一个下拉框:DIf如果你仍然有问题,请确保它们都是InnoDB表(你可能需要在create语句的末尾添加
Engine=InnoDB
,在结束符之后,分号之前)并且引用表中的列都已编制索引。