Bonjour. Je suis en train de créer une base de données en SQL pour m'entraîner, mais je n'ai pas bien compris comment marchais exactement les triggers. Je me suis quand même renseigné sur internet, mais je n'ai pas trouvé grand chose m'aidant assez. Je ne sais pas si vous pourrez m'aider, je vous laisse mes codes et mon objectif en dessous :

Voici mes tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CREATE TABLE AUTEUR (
    NumAuteur 	INTEGER,
    NomAuteur	VARCHAR(20),
    PRIMARY KEY (NumAuteur)
);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CREATE TABLE EDITEUR (
	CodeEditeur		INTEGER,
	RaisonSociale	VARCHAR(50),
	PRIMARY KEY (CodeEditeur)
);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
CREATE TABLE LIVRE (
	NumLivre	INTEGER,
	Titre		VARCHAR(60),
	CodeEditeur INTEGER,
	PRIMARY KEY (NumLivre),
	FOREIGN KEY (CodeEditeur) REFERENCES EDITEUR(CodeEditeur)
);
Et leur contenu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
INSERT INTO AUTEUR (NumAuteur, NomAuteur)
VALUES
	(1, 'TWAIN'),
	(2, 'ORWELL'),
	(3, 'VERNES'),
	(4, 'WELLS');
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
INSERT INTO EDITEUR (CodeEditeur, RaisonSociale)
VALUES 
	(11, 'Hachette Livre'),
	(12, 'Flammarion'),
	(13, 'Bayard'),
	(14, 'Atlas');
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
INSERT INTO LIVRE (NumLivre, Titre, CodeEditeur)
VALUES
	(11, '1984'),
	(12, 'Tom Sawyer'),
	(13, 'De la Terre à la Lune'),
	(12, 'La machine à remonter le temps');
--------------------------------------------------------------------------------------------------------------------

Mon but est de créer un trigger qui remet la valeur NULL à la clé étrangère "CodeEditeur" de la table LIVRE lorsqu'un supprime cet éditeur dans la table EDITEUR.
> Je ne sais pas si c'est réellement possible, mais j'ai essayé quelques trucs que j'ai trouvé sur internet, et j'ai ce "bout de code" non complet et peut être même faux ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
CREATE TRIGGER met_a_NULL 
ON EDITEUR AFTER DELETE 
AS
BEGIN
	DELETE FROM EDITEUR
	CodeEditeur = NULL;
END;
Je ne sais pas si vous aurez bien compris ma question N'hésitez pas à me demandez plus de précisions si il manque des choses ?

En tout cas je vous remercie d'avance !
Louis