首頁 >資料庫 >mysql教程 >mysql增加外鍵有哪些方法

mysql增加外鍵有哪些方法

清浅
清浅原創
2019-05-10 10:25:2428729瀏覽

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)  //约束生效   插入失败

以上是mysql增加外鍵有哪些方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn