mysql添加外鍵的方法有:在屬性值后面直接添加;在sql語句末端添加;使用fk以及在建表后添加外鍵
相關學習推薦:mysql教程
mysql添加外鍵的4種方式
創建主表:?班級
CREATE?TABLE?class(cid?INT?PRIMARY?KEY?AUTO_INCREMENT, sname?VARCHAR(15)?NOT?NULL) INSERT?INTO?class?VALUES(NULL,'六年級一班') INSERT?INTO?class?VALUES(NULL,'六年級二班')
第一種:在屬性值后面直接添加
CREATE?TABLE?student(sid?INT?AUTO_INCREMENT, sname?VARCHAR(10)?NOT?NULL, s_cid?INT?REFERENCES?class(cid), PRIMARY?KEY(sid) );
//添加數據進行測試
INSERT?INTO?student?VALUES(NULL,'王大錘',2) INSERT?INTO?student?VALUES(NULL,'胡漢三',3) //約束不生效,原因待查 INSERT?INTO?student?VALUES(NULL,'臥槽',4) //不敢相信,在測試一次
這種方式,測試不知道為什么,居然添加進去了? WTF?? 在網上百度無果,自學群無回復? 暫時先擱置在這兒
第二種:2.在sql語句末端添加
CREATE?TABLE?student( sid?INT?AUTO_INCREMENT, sname?VARCHAR(10), s_cid?INT, PRIMARY?KEY(sid), FOREIGN?KEY?(s_cid)?REFERENCES?class(cid) );
//插入數據測試一下
INSERT?INTO?student?VALUES(NULL,'王大錘',2) INSERT?INTO?student?VALUES(NULL,'胡漢三',3) //約束生效 插入失敗
外鍵約束生效
第三種:fk的使用
CREATE?TABLE?student(sid?INT?AUTO_INCREMENT, sname?VARCHAR(10)?NOT?NULL, s_cid?INT?, PRIMARY?KEY(sid), CONSTRAINT?fk_student_class?FOREIGN?KEY(s_cid)?REFERENCES?class(cid) );
INSERT?INTO?student?VALUES(NULL,'王大錘',2) INSERT?INTO?student?VALUES(NULL,'胡漢三',3) //約束生效 插入失敗
第四種:在建表后添加外鍵
CREATE?TABLE?student(sid?INT?AUTO_INCREMENT, sname?VARCHAR(10)?NOT?NULL, s_cid?INT?, PRIMARY?KEY(sid) );
//添加外鍵約束:
ALTER?TABLE?student?ADD?FOREIGN?KEY?(s_cid)?REFERENCES?class(cid);
//測試
INSERT?INTO?student?VALUES(NULL,'王大錘',2) INSERT?INTO?student?VALUES(NULL,'胡漢三',3) //約束生效? 插入失敗
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END