Maison >base de données >tutoriel mysql >Quelles sont les méthodes pour ajouter des clés étrangères dans MySQL

Quelles sont les méthodes pour ajouter des clés étrangères dans MySQL

清浅
清浅original
2019-05-10 10:25:2428766parcourir

Les méthodes pour ajouter des clés étrangères dans MySQL incluent : l'ajout directement après la valeur de l'attribut ; l'ajout à la fin de l'instruction SQL ; l'utilisation de fk et l'ajout de clés étrangères après la création de la table

Quelles sont les méthodes pour ajouter des clés étrangères dans MySQL

Recommandations d'apprentissage associées : Tutoriel MySQL

4 façons d'ajouter des clés étrangères à MySQL

Créer la table principale : Classe

CREATE TABLE class(cid INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(15) NOT NULL)
INSERT INTO class VALUES(NULL,'六年级一班')
INSERT INTO class VALUES(NULL,'六年级二班')

Première méthode : Ajouter

CREATE TABLE student(sid INT AUTO_INCREMENT,
sname VARCHAR(10) NOT NULL,
s_cid INT REFERENCES class(cid),
PRIMARY KEY(sid)
);

directement après la valeur de l'attribut//Ajouter des données pour tester

INSERT INTO student VALUES(NULL,'王大锤',2)
INSERT INTO student VALUES(NULL,'胡汉三',3)    //约束不生效,原因待查
INSERT INTO student VALUES(NULL,'卧槽',4)     //不敢相信,在测试一次

De cette façon, je ne sais pas pourquoi, mais cela a été ajouté dans le test WTF ? Pas de résultats sur Baidu en ligne, pas de réponse dans le groupe d'auto-apprentissage, je vais le laisser ici pour l'instant

Deuxième type : 2. Ajoutez à la fin de l'instruction SQL

CREATE TABLE student(
sid INT AUTO_INCREMENT,
sname VARCHAR(10),
s_cid INT,
PRIMARY KEY(sid),
FOREIGN KEY (s_cid) REFERENCES class(cid)
);

//Insérer des données à tester

INSERT INTO student VALUES(NULL,'王大锤',2)
INSERT INTO student VALUES(NULL,'胡汉三',3)   //约束生效  插入失败

Les contraintes de clé étrangère prennent effet

Troisième méthode : utilisation de 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)
);
rrree

Quatrième méthode : Ajouter des clés étrangères après avoir créé la table

INSERT INTO student VALUES(NULL,'王大锤',2)
INSERT INTO student VALUES(NULL,'胡汉三',3)  //约束生效  插入失败

//Ajouter des contraintes de clé étrangère :

CREATE TABLE student(sid INT AUTO_INCREMENT,
sname VARCHAR(10) NOT NULL,
s_cid INT ,
PRIMARY KEY(sid)
);

//Test

ALTER TABLE student ADD FOREIGN KEY (s_cid) REFERENCES class(cid);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn