0

こんにちは、私は 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)
;
4

2 に答える 2

0

テーブルに2つのPKを含めることはできません。複合PKを使用する場合

PRIMARY KEY (PatientCode, DoctorCode), 

代わりは。

外部キー参照ドキュメントも調べる必要があります。

于 2013-01-14T12:01:38.473 に答える
0

日付は予約語なので、列に名前を付けたい場合は引用符で囲む必要があります。また、VARCHAR ではなく、その列に実際の Date 型を使用することを強くお勧めします。(スターデートのようなものである必要がある場合を除きます。) はい、主キーを 2 つ持つことはできません。1 つまたは複合 1 つが必要です。外部キーの定義も正しく見えません

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

);
于 2013-01-14T12:17:22.733 に答える