wo ist mein Fehler?

akretschmer

Datenbank-Guru
Beiträge
9.848
Code:
Server version: 5.1.67 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create table besitzer(besitzer_id int primary key) engine innodb;
Query OK, 0 rows affected (0.10 sec)

mysql> create table mietobjekt (objekt_id int primary key, besitzer int references besitzer) engine innodb;
Query OK, 0 rows affected (0.08 sec)

mysql> insert into mietobjekt values (1,1);
Query OK, 1 row affected (0.07 sec)

Kann mir bitte jemand, der sich mit MySQL auskennt, das erklären? Ich dachte, InnoDB kann RI?


Andreas
 
Werbung:
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.848
Wiso gibst du beim referenzieren nur die Tabelle, nicht aber die Spalte an?

Das ist einklich egal, da er erkennen sollte, daß der PK da gemeint ist. Geht so auch in PG, und ich denke, das ist so gemäß der SQL-Norm. Ich hab aber inzwischen eine Erklärung: um der SQL-Spec zu genügen, nimmt MySQL das an. Und wirft es weg. Um es richtig zu machen braucht es eine extra Definition.

Also, mal wieder: MySQL ist in Bezug zur SQL-Spec so, daß es alles annimmt, um es zu ignorieren. Immerhin funktioniert es erst mal, man genügt der SQL-Norm. So wie auch bei CHECK-Constraints, welche letztlich Placebos sind. Kann man sich nüchtern gar nicht vorstellen, was die Programmierer da für Zeugs gekifft haben müssen.

Andreas
 
Oben