1. 程式人生 > 其它 >阿里Java學習路線:階段 2:資料庫開發-SQL進階及查詢練習:課時8:外來鍵約束

阿里Java學習路線:階段 2:資料庫開發-SQL進階及查詢練習:課時8:外來鍵約束

技術標籤:阿里Java學習路線

外來鍵約束

# 新建表格,設定主鍵:
CREATE TABLE dept1(
	deptno INT PRIMARY KEY AUTO_INCREMENT,
	dname VARCHAR(50)
);

INSERT INTO dept1 VALUES(10,'研發部');
INSERT INTO dept1 VALUES(20,'人力部');
INSERT INTO dept1 VALUES(30,'財務部');

SELECT * FROM dept1;

DROP TABLE emp1;

# 新建表,設定主鍵和外來鍵約束:
CREATE TABLE emp1(
empno INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(50), dno INT, CONSTRAINT fk_emp1_dept1 FOREIGN KEY(dno) REFERENCES dept1(deptno) ); SELECT * FROM emp1; DESC emp1; INSERT INTO emp1(empno,ename) VALUES(NULL,'zhanSan'); INSERT INTO emp1(empno,ename,dno) VALUES(NULL,'liSi',10); INSERT INTO emp1(
empno,ename,dno) VALUES(NULL,'wangWu',10); INSERT INTO emp1(empno,ename,dno) VALUES(NULL,'zhaoLiu',80); # 因為外來鍵約束,dept1表沒有80部門,所以報錯 #[SQL]INSERT INTO emp1(empno,ename,dno) VALUES(NULL,'zhaoLiu',80); #[Err] 1452 - Cannot add or update a child row: a foreign key constraint fails #(`mydb1`.`emp1`, CONSTRAINT `fk_emp1_dept1` FOREIGN KEY (`dno`) REFERENCES `dept1` (`deptno`))
# 如果新建的表沒有外來鍵約束,可使用以下語句進行設定 ALTER TABLE emp1 ADD CONSTRAINT fk_emp1_dept1 FOREIGN KEY(dno) REFERENCES dept1(deptno);