Ich habe eine Tabelle mit 2 Einträgen.Vorschläge zum Einfügen mit Fremdschlüssel Einschränkung in mysql
Etwas wie
CREATE TABLE `db`.`main` (
`id` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
);
die ID für diesen 2 Einträge werden Primärschlüssel automatisch erzeugt.
Ich habe eine andere Tabelle mit einer Regel verknüpfen
CREATE TABLE `db`.`day` (
`main_id` int(10) unsigned NOT NULL,
`day` tinyint(4) NOT NULL,
CONSTRAINT `fk_db_main` FOREIGN KEY (`main_id`) REFERENCES `main` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
);
jetzt kann ich erfolgreich ein Ergebnis bekommen mit
SELECT * FROM main where id='9';
aber wenn ich versuche
INSERT INTO day (main_id, day) VALUES (9, 0);
ich
bekommen zu laufen"Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl (db
. day
, CONSTRAINT fk_db_main
FOREIGN KEY (main_id
) LITERATUR main
(id
) ON NO ACTION ON UPDATE NO ACTION DELETE) (1452)“
Irgendwelche Vorschläge auf, was ich mit dem Einsatz bin fehlt?
** I hadn 't die tatsächliche Ursache des Problems aufgelistet, während Sie die Frage stellten. Der eigentliche Grund war, dass die Haupt-DB-Tabelle in MyISAM war und die InnoDB -Tabellen keinen Fremdschlüssel erstellen konnten, der sich damit verbindet. Kurz gesagt, MyISAM unterstützt nicht Fremdschlüssel, auch wenn sie von anderen Tabellen kommen
Die INSERT-Anweisung sieht gut aus. –
Ich bin verwirrt, dass Sie denken, dass es zwei "Einträge" in der Haupttabelle gibt. Zu meiner Art zu denken, gibt es eine Spalte - ID genannt - und es ist auch der Primärschlüssel der Tabelle. –
Warum zitieren Sie auch die '9' in der SELECT? Und welches Ergebnis erhalten Sie, wenn Sie SELECT ausführen? –