Wow, thanks both of you. It worked... =) -----Original Message----- From: Roger Baklund [mailto:[EMAIL PROTECTED] Sent: August 24, 2005 9:17 AM To: mysql@lists.mysql.com Cc: [EMAIL PROTECTED] Subject: Re: need help with foreign keys, new to mysql
Pat Adams wrote: > On Wed, 2005-08-24 at 06:11 -0500, John Gonzales wrote: > >>CREATE TABLE `journal` ( >> `journal_id` int(10) unsigned NOT NULL auto_increment, [snip] >>CREATE TABLE comments >>( >> comment_id INT, >> comment_journal_id INT, >> INDEX jrn_id (journal_id), Here you are defining an index named jrn_id on a column called journal_id. This column must be defined in this table. I suppose it is a mistake, it should be: INDEX jrn_id (comment_journal_id), >> FOREIGN KEY (comment_journal_id) REFERENCES journal (journal_id) >> ON DELETE CASCADE ON UPDATE CASCADE >>) TYPE = INNODB; >> >>I got this as a respsone: >>Key column 'journal_id' doesn't exist in table See above. > From the manual: > http://dev.mysql.com/doc/mysql/en/innodb-foreign-key-constraints.html > > "Corresponding columns in the foreign key and the referenced key must > have similar internal data types inside InnoDB so that they can be > compared without a type conversion. The size and the signedness of > integer types has to be the same." > > You've got an INT in comments table and an int(10) unsigned in the > journal table. They need to match in signedness. I don't dispute this, but it was not the reason for the error message. :) -- Roger -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]