这个问题在这里已经有答案了:
向现有表添加外键(13个答案)
10个月前关门了。
这是我要创建的表:
table
在 Manager_ID
列我应该添加一个约束,但我不知道怎么做
这是我的密码:
CREATE TABLE CANDIDATE
(
Candidate_ID FLOAT(6) PRIMARY KEY,
Candidate_Name VARCHAR(20) NOT NULL,
Candidate_Email VARCHAR(30) UNIQUE,
Candidate_Dept CHAR(2) DEFAULT 'HR',
Manager_ID VARCHAR(30),
CONSTRAINT CHECK (Candidate_Email LIKE '%@%.%'),
CONSTRAINT CHECK (Manager_ID IN (SELECT DISTINCT Candidate_ID FROM CANDIDATE))
);
有人能帮我增加必要的工作来完成上述任务吗。
2条答案
按热度按时间093gszye1#
您将检查约束与外键约束混淆。第二个约束应该是外键:
我不明白这个定义:
CREATE TABLE CANDIDATE (
Candidate_ID INT PRIMARY KEY,
Candidate_Name VARCHAR(20) NOT NULL,
Candidate_Email VARCHAR(30) UNIQUE,
Candidate_Dept VARCHAR(20) DEFAULT 'HR',
Manager_ID INT,
CONSTRAINT CHECK (Candidate_Email LIKE '%@%.%'),
CONSTRAINT fk_candidate_manager_id FOREIGN KEY (Manager_ID) REFERENCES CANDIDATE(Candidate_ID)
);
2vuwiymt2#
不是一个
check
,但是foreign key
约束。我不知道mysql语法;在甲骨文里,那就是
我希望你能应用类似mysql的东西。