Arbeite gerade einen Kurs durch in dem folgendes erstes konkretes SQL Beispiel auftritt und habe bereits 2 Tage vergeblich damit verschwendet eine Datenbank zu finden die die Tabelle so anlegt wie es laut Codebeschreibung sein sollte :
CREATE TABLE Personal(
Persnr INT PRIMARY KEY,
Name CHAR(25) NOT NULL,
Ort CHAR(15),
Vorgesetzt SMALLINT REFERENCES Personal
ON DELETE SET NULL
ON UPDATE CASCADE,
.........................
1.
Da in meinem Kurs allgemein Datenbanken behandelt werden ist leider keine konkrete Datenbank zum durcharbeiten der Beispiele genannt.
Für welche SQL Datenbank ist dieser Syntax ?
MySQL(mit gesetztem ANSI-SQL Schalter) meckert zwar selsamerweise nicht, legt hier aber ,laut Tabelleninspektor des "MySQL Query Browsers" ,(in dem ich den Code als Skript teste) keinen Fremdschlüssel für "Vorgesetzt" an
und so werden auch die gestetzten Eigenschaften ON DELETE und ON UPDATE nicht übernommen.(Laut meinem KursSkript soll "Vorgesetzt" ein Fremdschlüssel sein der sich auf den Primärschlüssel der eigenen Relation bezieht)
Lediglich Folgendes funktioniert bei mir in MySQL um diese Beziehung wie gewünscht zu modellieren(und nur wenn der Typ des referenzierten Fremdschlüssels identisch ist) :
FOREIGN KEY (Vorgesetzt) REFERENCES Personal(Persnr)
Ist MySQL(Verison 5.1) zum Durcharbeiten des Beipiels geeignet ?
Welchem SQL Standart entspricht der im Kurs verwendete SQL-Code ?
2.
Kann Vorgesetzt nicht jeden def. Schlüsselwert von "Personal(Persnr)" annehmen?Wieso ist der Typ hier SMALLINT obwohl in "Personal(Persnr)" Integer Werte stehen könnten?
Danke im vorraus für schnelle Hilfe!!!!
CREATE TABLE Personal(
Persnr INT PRIMARY KEY,
Name CHAR(25) NOT NULL,
Ort CHAR(15),
Vorgesetzt SMALLINT REFERENCES Personal
ON DELETE SET NULL
ON UPDATE CASCADE,
.........................
1.
Da in meinem Kurs allgemein Datenbanken behandelt werden ist leider keine konkrete Datenbank zum durcharbeiten der Beispiele genannt.
Für welche SQL Datenbank ist dieser Syntax ?
MySQL(mit gesetztem ANSI-SQL Schalter) meckert zwar selsamerweise nicht, legt hier aber ,laut Tabelleninspektor des "MySQL Query Browsers" ,(in dem ich den Code als Skript teste) keinen Fremdschlüssel für "Vorgesetzt" an
und so werden auch die gestetzten Eigenschaften ON DELETE und ON UPDATE nicht übernommen.(Laut meinem KursSkript soll "Vorgesetzt" ein Fremdschlüssel sein der sich auf den Primärschlüssel der eigenen Relation bezieht)
Lediglich Folgendes funktioniert bei mir in MySQL um diese Beziehung wie gewünscht zu modellieren(und nur wenn der Typ des referenzierten Fremdschlüssels identisch ist) :
FOREIGN KEY (Vorgesetzt) REFERENCES Personal(Persnr)
Ist MySQL(Verison 5.1) zum Durcharbeiten des Beipiels geeignet ?
Welchem SQL Standart entspricht der im Kurs verwendete SQL-Code ?
2.
Kann Vorgesetzt nicht jeden def. Schlüsselwert von "Personal(Persnr)" annehmen?Wieso ist der Typ hier SMALLINT obwohl in "Personal(Persnr)" Integer Werte stehen könnten?
Danke im vorraus für schnelle Hilfe!!!!
Comment