我是SQL新手,我做了一切理解,但我無法創建表。說錯誤1005不能創建表user.EMPLOYEE
和user.STORE
(錯誤150)幫助錯誤1005不能創建表user.EMPLOYEE和user.STORE(errno 150)
DROP TABLE IF EXISTS EMPLOYEE, STORE, REGION;
CREATE TABLE REGION (
REGION_CODE int NOT NULL AUTO_INCREMENT,
REGION_DESCRIPT varchar(20),
PRIMARY KEY (REGION_CODE)
)Engine=InnoDB;
CREATE TABLE EMPLOYEE (
EMP_CODE int NOT NULL AUTO_INCREMENT,
EMP_TITLE varchar(4),
EMP_LNAME varchar(15),
EMP_FNAME varchar(15),
EMP_INITIAL varchar(1),
EMP_DOB date,
STR_CODE int NOT NULL ,
PRIMARY KEY (EMP_CODE,STR_CODE),
FOREIGN key (STR_CODE) REFERENCES STORE(STORE_CODE)
) Engine=InnoDB;
CREATE TABLE STORE (
STORE_CODE int NOT NULL AUTO_INCREMENT,
STORE_NAME varchar(20),
STORE_YRD_SALES numeric,
REGION_CODE int,
EMP_CODE int NOT NULL,
PRIMARY KEY (STORE_CODE),
FOREIGN KEY (REGION_CODE) REFERENCES REGION(REGION_CODE),
FOREIGN KEY (EMP_CODE) REFERENCES EMPLOYEE(EMP_CODE)
) Engine=InnoDB;
您可以嘗試移動你的'國外key'了創建語句的,因爲你可以看到,'employee'表引用到'store'表,但'store'表在那個時候還不存在。 – Prisoner
如果這些表要彼此鏈接並且可能會在它們引用的表之後創建,則可能需要在運行create語句之前禁用外鍵檢查。不要忘記之後重新啓用它們。 – gabe3886