I can't believe I missed that. The insert statement is in the script - not sure why it wasn't added - not sure why I missed something so obvious.
David. ----- Original Message ----- From: "Heikki Tuuri" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, September 18, 2003 11:50 PM Subject: Re: InnoDB Foreign Key Constraint Issue > David, > > ----- Original Message ----- > From: "David Griffiths" <[EMAIL PROTECTED]> > Newsgroups: mailing.database.myodbc > Sent: Friday, September 19, 2003 4:07 AM > Subject: InnoDB Foreign Key Constraint Issue > > > > The following constraint is failing: > > > > ALTER TABLE address_list ADD CONSTRAINT FOREIGN KEY (address_type_id) > > REFERENCES address_type (address_type_id); > ... > > mysql> select distinct address_type_id from address_list; > > +-----------------+ > > | address_type_id | > > +-----------------+ > > | 100 | > > | 101 | > > | 102 | > > | 104 | > > | 105 | > > +-----------------+ > > > > And here are all the address_type.address_type_id values: > > > > mysql> select address_type_id from address_type; > > +-----------------+ > > | address_type_id | > > +-----------------+ > > | 101 | > > | 102 | > > | 103 | > > | 104 | > > | 105 | > > +-----------------+ > > > > As you can see, there are no "null" or "0" address_list.address_type_id, > and > > the address_type_id-values in address_list are the same as the > > address_type.address_type_id values. > > > as we can see, there is a value 100 in address_list which does not appear in > address_type :). > > ... > > MySQL thread id 28, query id 1476997 localhost mysql copy to tmp table > > ALTER TABLE address_list ADD CONSTRAINT FOREIGN KEY (address_type_id) > > REFERENCES address_type (address_type_id) > > Foreign key constraint fails for table benchtest/#sql-166d_1c: > > , > > CONSTRAINT `0_144` FOREIGN KEY (`ADDRESS_TYPE_ID`) REFERENCES > > `address_type` (`ADDRESS_TYPE_ID`) > > Trying to add in child table, in index IF_ADDRESS_LIST_1 tuple: > > 0: len 4; hex 80000064; asc ...d;; 1: len 4; hex 800f4240; asc ..B@;; > > > InnoDB sets the highest bit in positive integers. Above we have a positive > integer 0x64 == 100 in decimal. > > > > But in parent table benchtest/address_type, in index PRIMARY, > > the closest match we can find is record: > > RECORD: info bits 0 0: len 4; hex 80000065; asc ...e;; 1: len 6; hex > > > The closest match is 0x65 == 101 in decimal. > > > > 00000000ac16; asc ......;; 2: len 7; hex 800000002d0084; asc ....-..;; 3: > > len 8; hex 427573696e657373; asc Business;; > > > > > > Can anyone tell me what the issue might be? According to the manual, > > everything should work. It doesn't look like a data issue.... > > > > David. > > P.S. > > Since many people are waiting for multiple tablespaces, I am posting the > status here: > > " > I have now got also crash recovery working with multiple tablespaces. > > I spent this day tracking a memory corruption bug, which turned out to be an > unfreed semaphore when I drop a tablespace. > > There is still a simple bug that all secondary indexes get created in the > system tablespace, but that should be easy to fix. ALTER TABLE fails in an > error > > 030919 3:40:22 InnoDB: Error creating file ./test/#sql-15f_3.ibd. > 030919 3:40:22 InnoDB: Operating system error number 17 in a file > operation. > InnoDB: See http://www.innodb.com/ibman.html for installation help. > InnoDB: Error number 17 means 'File exists'. > > ALTER TABLE apparently does not work because RENAME TABLE does not work yet > with .ibd files, they do not get renamed. > " > > Best regards, > > Heikki Tuuri > Innobase Oy > http://www.innodb.com > Foreign keys, transactions, and row level locking for MySQL > InnoDB Hot Backup - a hot backup tool for MySQL > > Order MySQL technical support from https://order.mysql.com/ > > > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]