T-Rex: FOREIGN KEY hinzufügen funktioniert bei bestimmter Tabelle nicht

Beitrag lesen

Moin,

hab hier zwei test-Tabellen:

CREATE TABLE table_test (
`id` int(11) unsigned NOT NULL auto_increment, 
`newdate` datetime NOT NULL DEFAULT current_timestamp(), 
`editdate` datetime NOT NULL DEFAULT current_timestamp(), 
`name` varchar(32) NOT NULL, 
`isin` varchar(12) NOT NULL, 
PRIMARY KEY (id)
)  ENGINE = InnoDB DEFAULT CHARSET = utf8

und

CREATE TABLE table_child_test (
`id` int(11) unsigned NOT NULL auto_increment, 
`newdate` datetime NOT NULL DEFAULT current_timestamp(), 
`editdate` datetime NOT NULL DEFAULT current_timestamp(), 
`text` varchar(32) NOT NULL, 
`text2` char(12) NOT NULL, 
`id_table_test` int(11) unsigned NOT NULL, 
PRIMARY KEY (id)
)  ENGINE = InnoDB DEFAULT CHARSET = utf8

Dann erzeuge ich einen FOREIGN KEY:

"ALTER TABLE `table_child_test` ADD CONSTRAINT `foreign_id_table_test` FOREIGN KEY (id_table_test) REFERENCES `table_test`(`id`) ON DELETE CASCADE

Alles gut. Der Foreign Key funktioniert wie er soll. Jetzt habe ich noch eine dritte Tabelle:

CREATE TABLE table_deletenull_test (
`id` int(11) unsigned NOT NULL auto_increment, 
`newdate` datetime NOT NULL DEFAULT current_timestamp(), 
`editdate` datetime NOT NULL DEFAULT current_timestamp(), 
`on_delete_null_table_test` int(11) unsigned NOT NULL, 
PRIMARY KEY (id)
)  ENGINE = InnoDB DEFAULT CHARSET = utf8

Dort versuche ich einen ähnlichen ForeignKey mit gleicher Logik zu installieren:

ALTER TABLE `table_deletenull_test` ADD CONSTRAINT `foreign_on_delete_null_table_test` FOREIGN KEY (on_delete_null_table_test) REFERENCES `table_test`(`id`) ON DELETE CASCADE

Hier schlägt es jedoch fehl: #1452 - Kann Kind-Zeile nicht hinzufügen oder aktualisieren: eine Fremdschlüsselbedingung schlägt fehl (test.#sql-31f8_55b, CONSTRAINT foreign_on_delete_null_table_test FOREIGN KEY (on_delete_null_table_test) REFERENCES table_test (id) ON DELETE CASCADE)

Ich hab schon diverse Tests gemacht. So habe ich aus Angst, die Foreign Keys könnten sich überschneiden die zweite Tabelle auch mal gelöscht und versucht den Foreign Key nur mit der Eltern Tabelle und Tabelle 3 an zu legen. Das Ergebnis ist das gleiche.

Die Felder sind meiner Ansicht nach richtig. Der Foreign Key Befehl ist auch richtig geschrieben. Es kommen keine anderen Index in die quere. Mir fehlen mal wieder die Ansätze.

Jemand eine Idee?

Gruß famous T-Rex