0
我是新来的MySQL和网上论坛,并且仍然有一些对编程新手,请我试图强制引用约束,每次我插入或更新的值是什么(即76在DNO列和Employee表),它的工作原理,即使它是一个外键在不具有匹配值Department表引用PK Dnumber。我如何执行参照违规?如何强制引用约束(外键)
CREATE TABLE EMPLOYEE
(Fname VARCHAR(15) NOT NULL,
Minit CHAR,
Lname VARCHAR(15) NOT NULL,
Ssn CHAR(9) NOT NULL,
Bdate DATE,
Address VARCHAR(30),
Sex CHAR,
Salary DECIMAL(10,2),
Super_ssn CHAR(9),
Dno INT NOT NULL,
PRIMARY KEY (Ssn),
FOREIGN KEY (Super_ssn) REFERENCES EMPLOYEE(Ssn),
FOREIGN KEY (Dno) REFERENCES DEPARTMENT(Dnumber));
CREATE TABLE DEPARTMENT
(Dname VARCHAR(15) NOT NULL,
Dnumber INT NOT NULL,
Mgr_ssn CHAR(9) NOT NULL,
Mgr_start_date DATE,
PRIMARY KEY (Dnumber),
UNIQUE (Dname),
FOREIGN KEY (Mgr_ssn) REFERENCES EMPLOYEE(Ssn));
--------------------------Example of the Update code------------------
UPDATE EMPlOYEE
SET Dno='12'
WHERE Fname='Sandra';
请不要张贴在CAPS您的问题标题或文本(代码是罚款)。在所有CAPS中打字很难阅读,这很烦人,它不会让你更快得到答案。 Shift键放在键盘上以允许输入文本以便更易读。 (SHOUTING也被认为很粗鲁。):-)另外,请不要在标题中加入标签信息。这里的标记系统非常擅长对事物进行分类,并且不需要帮助。 :-)请参阅[应的问题包括“标签”,在他们的头衔?(http://meta.stackexchange.com/q/19190/172661)。谢谢。 –
如果您已经定义了两个'Dno'和'Dnumber'为'INT',为什么要赋予它们一个字符值(''12'')?它应该是'UPDATE EMPLOYEE SET Dno = 12 WHERE Fname ='Sandra''。 –
@KenWhite我的帽子很抱歉,感谢您的留言。我也无意加入“”〜12 – user2447830