ข้อผิดพลาดทางไวยากรณ์ mySQL เกี่ยวกับข้อจำกัด

CREATE TABLE MARINA_SLIP
(
SLIP_ID VARCHAR(4),
MARINA_NUM VARCHAR(4),
SLIP_NUM VARCHAR(4),
LENGTH INT,
RENTAL_FEE DECIMAL(8,2),
BOAT_NAME VARCHAR(50),
BOAT_TYPE VARCHAR(50),
OWNER_NUM VARCHAR(4),
CONSTRAINT MARINA_SLIP_SLIP_ID_PK PRIMARY KEY (SLIP_ID),
CONSTRAINT MARINA_SLIP_MARINA_NUM_FK FOREIGN KEY (MARINA_NUM),
CONSTRAINT MARINA_SLIP_OWNER_NUM_FK FOREIGN KEY (OWNER_NUM) REFERENCES OWNER (OWNER_NUM)
);

ข้อผิดพลาดระบุว่า:

ข้อผิดพลาด 1064 (42000): คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณเพื่อหาไวยากรณ์ที่ถูกต้องเพื่อใช้ใกล้กับ ' CONSTRAINT MARINA_SLIP_OWNER_NUM_FK FOREIGN KEY (OWNER_NUM) REFERENCES OWNER (O' ที่บรรทัด 12

ไม่มีใครรู้ว่าทำไมสิ่งนี้ถึงไม่ทำงาน?

แก้ไข: ฉันคิดออกแล้ว มีข้อผิดพลาดเล็กน้อยที่ไม่ได้รวมการอ้างอิงคีย์ต่างประเทศ


person borked97    schedule 02.09.2017    source แหล่งที่มา
comment
คีย์ต่างประเทศตัวแรกไม่ได้อ้างอิงคอลัมน์ใดๆ...   -  person Jaskaranbir Singh    schedule 03.09.2017
comment
@ JaskaranbirSingh ขอบคุณที่ชี้ให้เห็น ฉันอยู่ในคลาส SQL ระดับเริ่มต้น โดยพื้นฐานแล้วฉันคัดลอกข้อจำกัด และการอ้างอิงคีย์ต่างประเทศถูกผลักบรรทัดลง ข้อผิดพลาดที่ชัดเจนที่ฉันใช้เวลา 30 นาทีในการพยายามคิดออก ขอบคุณ!   -  person borked97    schedule 03.09.2017


คำตอบ (1)


เพิ่ม REFERENCES ใน CONSTRAINT MARINA_SLIP_MARINA_NUM_FK FOREIGN KEY (MARINA_NUM) เช่น CONSTRAINT MARINA_SLIP_MARINA_NUM_FK FOREIGN KEY (MARINA_NUM) REFERENCES OWNER (MARINA_NUM)

person M7md0136466    schedule 02.09.2017