1
MySQL的:不能在MySQL中添加外鍵約束
CREATE SCHEMA IF NOT EXISTS otes_db;
USE otes_db;
CREATE TABLE IF NOT EXISTS school(
school_code CHAR(3),
school_desc VARCHAR(255) NOT NULL,
school_head INT UNSIGNED NOT NULL,
PRIMARY KEY(school_code),
FOREIGN KEY(school_head) REFERENCES user(user_id)
ON DELETE CASCADE
ON UPDATE CASCADE
)ENGINE=INNODB;
CREATE TABLE IF NOT EXISTS user(
user_id INT UNSIGNED,
user_lname VARCHAR(255) NOT NULL,
user_fname VARCHAR(255) NOT NULL,
user_mname VARCHAR(255),
user_email VARCHAR(255) UNIQUE NOT NULL,
user_password VARCHAR(255) NOT NULL,
user_type ENUM('CEO', 'VP', 'HEAD', 'CHAIR', 'STUD') NOT NULL,
user_isActivated ENUM('Y', 'N') DEFAULT 'N',
PRIMARY KEY(user_id)
);
基於this thread,我已檢查了以下內容:
- InnoDB引擎設置在
school
表 - 的引用鍵是主鍵(
user_id
) - 數據類型相同(
INT UNSIGNED
)
不過,我仍然得到錯誤與school_head
和user_id
。我錯過了什麼?
您需要在*創建表'school'之前創建表'user' *。另外'user'是一個保留關鍵字,你需要引用它(最好找到一個不同的名字,這不是一個保留字) –
如果你可以讓這個答案,我會upvote並接受它。也感謝關於'user'的提示(這就是爲什麼它總是以藍色突出顯示)。 – silver