select version(); 5.7.22
drop table if exists Models; CREATE TABLE Models ( ModelID SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, Name VARCHAR(40) NOT NULL, PRIMARY KEY (ModelID) );
drop table if exists Orders; CREATE TABLE Orders ( ID SMALLINT UNSIGNED NOT NULL PRIMARY KEY, ModelID SMALLINT UNSIGNED NOT NULL, Description VARCHAR(40), FOREIGN KEY (ModelID) REFERENCES Models (ModelID) ON DELETE cascade );
insert into Orders(Id,ModelID,Description) values (1,1,'a');
Ergebnis: Ausführung fehlgeschlagen
Ausnahme: [2018-07-31 11:08:01] 23000 Kann nicht hinzugefügt werden oder Untergeordnete Zeile aktualisieren: Eine Fremdschlüsseleinschränkung schlägt fehl (bov
.Orders
, CONSTRAINT Orders_ibfk_1
FOREIGN KEY (ModelID
) REFERENCES Models
(ModelID
) ON DELETE CASCADE)
Grund: Der Fremdschlüssel Schlüssel bei Löschkaskade kann nicht übergeben werden. Einschränkungsprüfung
insert into Models(ModelID,Name) values (1,'a'); insert into Orders(Id,ModelID,Description) values (1,1,'a');
Ergebnis: Erfolgreiche Ausführung
select * from Models; 1 a select * from Orders; 1 1 a
delete from Orders where id = 1;
Ergebnis: Erfolgreiche Ausführung
select * from Models; 1 a select * from Orders; 为空
delete from Models where ModelID = 1;
Ergebnis: Erfolgreiche Ausführung
select * from Models; 为空 select * from Orders; 为空
update Orders set ModelID = 3 where ID =1;
Ergebnis: Ausführung fehlgeschlagen
Ausnahme: [2018 -07-31 12:33:02] 23000 Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl (bov
.Orders
, CONSTRAINT Orders_ibfk_1
FOREIGN KEY (ModelID
) REFERENCES Models
(ModelID
) ON DELETE CASCADE)
Grund: Fehler beim Löschen der Fremdschlüssel-Einschränkungsprüfung von Cascade
update Models set ModelID = 2 where ModelID =1;
Ergebnis: Ausführung fehlgeschlagen
Ausnahme: [2018-07-31 12:34 :24] 23000 Eine übergeordnete Zeile kann nicht gelöscht oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl (bov
.Orders
, CONSTRAINT Orders_ibfk_1
FOREIGN KEY (ModelID
) REFERENCES Models
(ModelID
) ON DELETE CASCADE)
Grund: Prüfung der Fremdschlüsseleinschränkung bei Löschkaskade fehlgeschlagen
update Orders set Description = 'b' where ID =1;
Ergebnis: Erfolgreiche Ausführung
select * from Orders; 1 1 b
update Models set Name = 'c' where ModelID =1;
Ergebnis: Erfolgreiche Ausführung
select * from Models; 1 c
Verwandte Artikel:
Einrichtung und Leistungstest des MySQL-Datenbankindex
MySQL-Hochleistungsstresstest (lange Zusammenfassung)
Verwandte Videos:
Data Structure Adventure: Linear Table
Das obige ist der detaillierte Inhalt vonZusammenfassung der Einrichtung von übergeordneten Testtabellen, untergeordneten Tabellen und Testfällen in Mysq. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!