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) //约束生效 插入失败
以上是mysql增加外鍵有哪些方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!