Microsoft
Software
Hardware
Network
Question : foreign key constraint error question
I have the following tables
CREATE TABLE `w_document_flat` (
`Accession_No` varchar(7) NOT NULL,
`Pub_Abbreviation` varchar(25) NOT NULL,
PRIMARY KEY (`Accession_No`)
) ENGINE=MyISAM
CREATE TABLE `descriptors` (
`descriptor_id` int(11) NOT NULL auto_increment,
`descriptor_name` varchar(500) NOT NULL,
PRIMARY KEY (`descriptor_id`)
) ENGINE=InnoDB
CREATE TABLE `w_descriptors` (
`descriptor_id` int(11) NOT NULL,
`Accession_No` varchar(7) NOT NULL,
PRIMARY KEY (`descriptor_id`,`Accessio
n_No`),
KEY `Accession_No` (`Accession_No`),
KEY `descriptor_id` (`descriptor_id`),
CONSTRAINT `Accession_No` FOREIGN KEY (`Accession_No`) REFERENCES `w_document_flat` (`Accession_No`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `descriptor_id` FOREIGN KEY (`descriptor_id`) REFERENCES `descriptors` (`descriptor_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB
When I try and do an insert into the
insert into w_descriptors (descriptor_id, Accession_No) values ("0000001", 1);
I get the following message:
Error Code: 1452
Cannot add or update a child row: a foreign key constraint fails (`w/w_descriptors`, CONSTRAINT `Accession_No` FOREIGN KEY (`Accession_No`) REFERENCES `w_document_flat` (`Accession_No`) ON DELETE NO ACTION ON UPDATE NO ACTION)
I am really confused. Is it because the w_document_flat table is MyISAM?
Answer : foreign key constraint error question
Yes, "Both tables must be InnoDB tables and they must not be TEMPORARY tables. "
http://dev.mysql.com/doc/r
efman/5.1/
en/innodb-
foreign-ke
y-
constrai
nts.html
I ran into the same problem recently.
Random Solutions
MS SQL Stored Procedure miscounting number of characters
Add date to MySQL
How convert Windows 7 shadow copies into usable Restore Points like XP?
How do I connect to a Windows VPN server through a Cisco ASA 5505?
How do I check if a window is already open or give it focus using Flex/Flash
How to connect Crystal Report to SQL database in .NET C#
CX600 FLARE 2.05.600.5.007 - upgrade procedure to 2.19?
#tables always in tempdb only?
Setup/Configure Outlook settings using group policy
Adding an if statement