create table EXPERIENCE_CASE(
ID int primary key not null auto_increment,
BUSINESS_ID int,
CASE_CODE varchar(100),
CASE_NAME varchar(300),
CASE_PRIORITY int,
CASE_RESULT int,
EXECUIT_PEOPLE int,
EXECUIT_PEOPLE_PHONE varchar(32),
EXECUIT_TIME datetime,
ISERROR int,
REMARK text,
ISTEMPORARY int,
MANUFACTURER_EXCHANGE varchar(500),
PROBLEM_PROPERTY varchar(300),
USER_INFLUENCE varchar(500),
SOLUTION varchar(300),
MANUFACTURER_REPLY varchar(1000),
TRANSACTOR_REPLY varchar(1000),
TEM_TIME datetime,
OPERATOR_REPLY varchar(1000),
COM_MODELS varchar(1000),
BASE_CASEINFO_ID int,
FAULT_SIGN int,
foreign KEY (BUSINESS_ID) references BUSINESS_INFO(BUSINESS_ID)
)engine=innodb default character set =utf8;mysql建表时报
Can't create table 'ttms.experience_case' (errno: 150)
这个错误是怎么回事?

解决方案 »

  1.   

    把 foreign KEY (BUSINESS_ID) references BUSINESS_INFO(BUSINESS_ID) 去掉先试一下。
      

  2.   

    找到原因了,是最后那条主键表的字符集的问题,下面这样就可以了
    create table EXPERIENCE_CASE(
    ID int primary key not null auto_increment,
    BUSINESS_ID int(10),
    CASE_CODE varchar(100),
    CASE_NAME varchar(300),
    CASE_PRIORITY int,
    CASE_RESULT int,
    EXECUIT_PEOPLE int,
    EXECUIT_PEOPLE_PHONE varchar(32),
    EXECUIT_TIME datetime,
    ISERROR int,
    REMARK text,
    ISTEMPORARY int,
    MANUFACTURER_EXCHANGE varchar(500),
    PROBLEM_PROPERTY varchar(300),
    USER_INFLUENCE varchar(500),
    SOLUTION varchar(300),
    MANUFACTURER_REPLY varchar(1000),
    TRANSACTOR_REPLY varchar(1000),
    TEM_TIME datetime,
    OPERATOR_REPLY varchar(1000),
    COM_MODELS varchar(1000),
    BASE_CASEINFO_ID int,
    FAULT_SIGN int,
    foreign KEY (BUSINESS_ID) references BUSINESS_INFO(BUSINESS_ID)
    )ENGINE=MyISAM DEFAULT CHARSET=utf8;