[SQL] Compréhension sur la clause MATCH d'une intégrité
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 :
Code:
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)
) |
celle-ci contient 2 lignes :
Citation:
DUBOIS Alain
DURAND Paula
Une seconde table :
Code:
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:
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 :
Code:
INSERT INTO TEST(test_id, nom, prenom) VALUES(6, 'DUVAL', 'MARCEL');
Ce que je ne comprend pas, c'est pourquoi elle va se faire rejeter :?
Si une âme charitable pouvait me fournir une explication assez simple, ce serait sympa.
Merci d'avance.