todd hewett wrote:
>>>mysql> INSERT INTO BOARD_SERIAL_NUMBER (BOARD_SERIAL_NUMBER)
>>>mysql> VALUES(36534);
>>>
>>>ERROR 1216: Cannot add a child row: a foreign key constraint fails
>
>
>>Can you please post the output of:
>
>
>>SHOW CREATE TABLE BOARD_SERIAL_NUMBER;
>
>
> mysql> SHOW CREATE TABLE BOARD_SERIAL_NUMBER;
> --------------------------------------------+
> | BOARD_SERIAL_NUMBER | CREATE TABLE `BOARD_SERIAL_NUMBER` (
> `BOARD_SERIAL_NUMBER_PK` int(10) unsigned NOT NULL auto_increment,
> `VCS_PO_NUMBER_PK` int(10) unsigned NOT NULL default '0',
> `BOARD_SERIAL_NUMBER` varchar(255) NOT NULL default '',
> PRIMARY KEY (`BOARD_SERIAL_NUMBER_PK`,`VCS_PO_NUMBER_PK`),
> KEY `BOARD_SERIAL_NUMBER_FKIndex1` (`VCS_PO_NUMBER_PK`),
> FOREIGN KEY (`VCS_PO_NUMBER_PK`) REFERENCES
> `productiontrack.VCS_PO_NUMBER` (`VCS_PO_NUMBER_PK`) ON DELETE CASCADE
> ) TYPE=InnoDB |
>
+---------------------+-----------------------------------------------------
Because you're not specifying a value for VCS_PO_NUMBER_PK in that
INSERT statement, it will default to 0. It is a foreign key referencing
the 'productiontrack.VCS_PO_NUMBER' table, which I bet doesn't have a
row with VCS_PO_NUMBER_PK equal to 0. Hence the foreign key constraint
fails.
You need to either:
1/ Specify the relevant value for VCS_PO_NUMBER_PK in your insert
statement, like
INSERT INTO BOARD_SERIAL_NUMBER (BOARD_SERIAL_NUMBER, VCS_PO_NUMBER_PK)
VALUES (36534, 12345);
2/ Remove the foreign key constraint
3/ Create a row in VS_PO_NUMBER where VCS_PO_NUMBER_PK is equal to 0
You should probably take option 1 if possible.
#####################################################################
O.K. VCS_PO_NUMBER_PK is an auto increment primary key for VCS_PO_NUMBER
How would I know that value... I am trying to inser the VCS_PO_NUMBER at
this time.
I guess what needs to be one in this case is:
Insert the VCS_PO_NUMBER
Search the table for VCS_PO_NUMBER_PK where VCS_PO_NUMBER IS a certain value
and then use that info in the board serial number insert.
Does that sound right?
Thanks for the illumination.
Todd
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:
http://lists.mysql.com/mysql?unsub=1