Heim  >  Artikel  >  Datenbank  >  Zusammenfassung der Einrichtung von übergeordneten Testtabellen, untergeordneten Tabellen und Testfällen in Mysq

Zusammenfassung der Einrichtung von übergeordneten Testtabellen, untergeordneten Tabellen und Testfällen in Mysq

php是最好的语言
php是最好的语言Original
2018-08-01 15:06:232400Durchsuche

Testtabelle erstellen

Versionsinformationen anzeigen

select version();
5.7.22

Übergeordnete Tabelle erstellen

drop table if exists Models;
CREATE TABLE Models
  (
    ModelID SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
   Name VARCHAR(40) NOT NULL,
    PRIMARY KEY (ModelID)
);

Untergeordnete Tabelle erstellen

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
  );

Test

Test Anwendungsfall – Es gibt keine entsprechenden Daten in der übergeordneten Tabelle, fügen Sie zuerst die untergeordnete Tabelle ein

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

Testfall – Zuerst Haupttabellendaten einfügen, dann untergeordnete Tabellendaten einfügen

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

Testfall- Sowohl die übergeordnete als auch die untergeordnete Tabelle haben Daten, löschen Sie die Daten der untergeordneten Tabelle

delete from Orders where id = 1;

Ergebnis: Erfolgreiche Ausführung

select * from Models;
1    a
select * from Orders;
为空

Testfall – sowohl die übergeordnete als auch die untergeordnete Tabelle haben Daten, löschen Sie die Bibliothek der übergeordneten Tabelle

delete from Models where ModelID = 1;

Ergebnis: Erfolgreiche Ausführung

select * from Models;
为空
select * from Orders;
为空

Testfall – Sowohl übergeordnete als auch untergeordnete Tabellen haben Daten, aktualisieren Sie den Fremdschlüssel der untergeordneten Tabelle

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

Testfall – sowohl übergeordnete als auch untergeordnete Tabellen haben Daten, aktualisieren Sie den Primärschlüssel der übergeordneten Tabelle

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

Testfall – sowohl übergeordnete als auch untergeordnete Tabellen enthalten Daten , aktualisiere den Nicht-Fremdschlüssel der untergeordneten Tabelle

update Orders set Description = 'b' where ID =1;

Ergebnis: Erfolgreiche Ausführung

select * from Orders;
1    1    b

Testfall – Sowohl die übergeordnete als auch die untergeordnete Tabelle haben Daten, aktualisiere den nicht-primären Schlüssel der übergeordneten Tabelle

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn