Frage : fremde Schlüsselbegrenzungsstörungsfrage

Ich habe das folgende tables

CREATE TABELLE `w_document_flat `(das
`Accession_No `varchar (7) NICHT NULL,
`Pub_Abbreviation `varchar (25) NICHT NULL,
PRIMÄRSCHLÜSSEL (`Accession_No `)
) ENGINE=MyISAM

CREATE TABELLE `Beschreiber `(
`descriptor_id `int (11) NICHT UNGÜLTIGES auto_increment,
`descriptor_name `varchar (500) NICHT NULL,
PRIMÄRSCHLÜSSEL (`descriptor_id `)
) ENGINE=InnoDB

CREATE TABELLE `w_descriptors `(das
`descriptor_id `int (11) NICHT UNGÜLTIG, das
`Accession_No `varchar (7) BEZIEHT NICHT NULL,
PRIMÄRSCHLÜSSEL (`descriptor_id `, `Accession_No `),
SCHLÜSSEL`Accession_No `(`Accession_No `),
SCHLÜSSEL`descriptor_id `(`descriptor_id `),
BEGRENZUNG `Accession_No `FREMDER SCHLÜSSEL (`Accession_No `) `w_document_flat `(`Accession_No `) LÖSCHEN AN KEINE TÄTIGKEIT AUF UPDATE KEINE TÄTIGKEIT,
BEGRENZUNG `descriptor_id `LÖSCHEN FREMDES BEZUGS`Beschreiber `DES SCHLÜSSEL-(`descriptor_id `) (`descriptor_id `) AN KEINE TÄTIGKEIT AUF UPDATE KEIN ACTION
) ENGINE=InnoDB

When, das ich versuche und tun einen Einsatz in das
insert in w_descriptors (descriptor_id, Accession_No) Werte („0000001“, 1);

I erhalten die folgende Mitteilung:
Error Code: 1452
Can eine Kindreihe nicht addieren oder aktualisieren: eine fremde Schlüsselbegrenzung verlässt (`LÖSCHEN w/w_descriptors `, BEGRENZUNG `Accession_No `FREMDES BEZUGS`w_document_flat `DES SCHLÜSSEL-(`Accession_No `) (`Accession_No `) AN KEINE TÄTIGKEIT AUF UPDATE KEINE TÄTIGKEIT),

I morgens verwirrte wirklich.  Ist sie, weil die w_document_flat Tabelle MyISAM ist?  

Antwort : fremde Schlüsselbegrenzungsstörungsfrage

Ja „beide Tabellen müssen InnoDB Tabellen sein und sie dürfen nicht TEMPORÄRE Tabellen sein. “

http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html

Ich lief in das gleiche Problem vor kurzem.

Weitere Lösungen  
 
programming4us programming4us