mysql增加外鍵有哪些方法

mysql添加外鍵的方法有:在屬性值后面直接添加;在sql語句末端添加;使用fk以及在建表后添加外鍵

mysql增加外鍵有哪些方法

相關學習推薦: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
喜歡就支持一下吧
點贊7 分享