Hi. Simple parent/child table generates some weird output based on the order possible bug?
Mysql 3.23.54 CREATE TABLE parent(id INT NOT NULL, PRIMARY KEY (id)) TYPE=INNODB; CREATE TABLE child(id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON UPDATE CASCADE ON DELETE CASCADE ) TYPE=INNODB; show create table commands give this : FOREIGN KEY (`parent_id`) REFERENCES `test.parent` (`id`) when it should be FOREIGN KEY (`parent_id`) REFERENCES `test.parent` (`id`) ON DELETE CASCADE insert into parent set id = 1; insert into child set id=1, parent_id=1; delete from parent where id = 1; ERROR 1217: Cannot delete a parent row: a foreign key constraint fails Now if the child was created like this : drop table child; CREATE TABLE child(id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ON UPDATE CASCADE ) TYPE=INNODB; show create table gives this : FOREIGN KEY (`parent_id`) REFERENCES `test.parent` (`id`) ON DELETE CASCADE Order matters! :) and another bug from same tables: (do this with the create table command above) alter table child add FOREIGN KEY (`parent_id`) REFERENCES `test.parent` (`id`) ON UPDATE CASCADE ON DELETE CASCADE alter table child add FOREIGN KEY (`parent_id`) REFERENCES `test.parent` (`id`) ON DELETE CASCADE --reversed from above ON UPDATE CASCADE and you'll get some nice output from show create table: FOREIGN KEY (`parent_id`) REFERENCES `test.parent` (`id`) ON DELETE CASCADE, FOREIGN KEY (`parent_id`) REFERENCES `test.parent` (`id`) ON DELETE CASCADE, FOREIGN KEY (`parent_id`) REFERENCES `test.parent` (`id`) Thank you for your time. Fix? Scott Wong, Meiko America, INC --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php