Bonjour à tous,
Je suis actuellement en cours de lecture d'un livre sur SQL, mais je n'arrive pas à comprendre la clause MATCH dans une contrainte.
Je vais vous citer le 1er exemple du livre avec MATCH SIMPLE, je pense que si je comprend celui, il en sera de même pour MATCH FULL et MATCH PARTIAL.
Une 1ère table :
celle-ci contient 2 lignes :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE UTILISATEUR ( nom CHAR(50) NOT NULL, prenom CHAR(30) NOT NULL, CONSTRAINT PK_UTILISATEUR PRIMARY KEY(nom, prenom) )
Une seconde table :DUBOIS Alain
DURAND Paula
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE TEST ( test_id INT NOT NULL PRIMARY KEY, nom CHAR(50), prenom CHAR(30), CONSTRAINT FK_TEST FOREIGN KEY(nom, prenom) REFERENCES UTILISATEUR(nom, prenom) MATCH SIMPLE )
On y insert 5 premières lignes :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 INSERT INTO TEST(test_id, nom, prenom) VALUES(1, 'DUBOIS', 'Alain'); INSERT INTO TEST(test_id, nom, prenom) VALUES(2, NULL, NULL); INSERT INTO TEST(test_id, nom, prenom) VALUES(3, 'DUBOIS', NULL); INSERT INTO TEST(test_id, nom, prenom) VALUES(4, 'DUHAMEL', NULL); INSERT INTO TEST(test_id, nom, prenom) VALUES(5, NULL, 'Paula');
Et une sixième qui elle va se faire rejeter :
Ce que je ne comprend pas, c'est pourquoi elle va se faire rejeter
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO TEST(test_id, nom, prenom) VALUES(6, 'DUVAL', 'MARCEL');
Si une âme charitable pouvait me fournir une explication assez simple, ce serait sympa.
Merci d'avance.
Partager