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

清浅
Libérer: 2020-09-15 11:49:44
original
28736 Les gens l'ont consulté

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,'六年级二班')
Copier après la connexion

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)
);
Copier après la connexion

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)     //不敢相信,在测试一次
Copier après la connexion

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)
);
Copier après la connexion

//Insérer des données à tester

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

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)
);
Copier après la connexion
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)  //约束生效  插入失败
Copier après la connexion

//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)
);
Copier après la connexion

//Test

ALTER TABLE student ADD FOREIGN KEY (s_cid) REFERENCES class(cid);
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal