MySQL Forums
Forum List  »  InnoDB

Re: ERROR 1005: Can't create table (errno: 150) [Oracle Conversion Potential Solution]
Posted by: Kevin Clark
Date: June 03, 2008 06:52AM

I found this problem when converting from Oracle. Oracle can automatically convert FK references between datatypes. MySQL cannot.

So,

One table had a FK reference to another table and the types were not the same.

DROP TABLE IF EXISTS `test`.`attendee_event`;
CREATE TABLE `test`.`attendee_event` (
`event_id` DECIMAL(38, 0) NOT NULL,
`facilitator_sid` INT(5) NOT NULL,
`facilitator_eid` INT(5) NOT NULL,
...
CONSTRAINT `attendee_event__facilitatr_eid` FOREIGN KEY `attendee_event__facilitatr_eid` (`facilitator_eid`)
REFERENCES `test`.`contact_entity` (`entity_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,

The referenced table uses DECIMAL (38,0) for the column type. Works in Oracle but not in MySQL.

CREATE TABLE `test`.`contact_entity` (
`entity_id` DECIMAL(38, 0) NOT NULL,
...

Hope that saves someone some time...

Options: ReplyQuote


Subject
Views
Written By
Posted
654485
March 24, 2005 01:20PM
6508
October 09, 2012 09:48PM
4433
December 19, 2011 10:13PM
10041
May 09, 2006 06:01PM
13194
November 15, 2006 02:05PM
8195
T D
February 01, 2008 06:47AM
Re: ERROR 1005: Can't create table (errno: 150) [Oracle Conversion Potential Solution]
10609
June 03, 2008 06:52AM
10150
August 27, 2008 08:08AM
11705
December 03, 2008 10:15AM
6932
May 01, 2009 07:39AM
4231
August 29, 2011 04:46PM
5778
s l
December 15, 2009 01:48PM
5832
December 22, 2009 02:54AM
4171
February 18, 2011 08:55AM
4927
May 24, 2011 10:11AM


Sorry, you can't reply to this topic. It has been closed.
This forum is currently read only. You can not log in or make any changes. This is a temporary situation.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.