mysql - 使用外键创建表 - 错误150

时间:2013-09-23 19:08:30

标签: mysql sql innodb

实际上我使用这个sql脚本在mysql 5.0.24上创建表格方案,它只是工作正常,问题是当我在mysql 5.5.16上尝试相同的脚本时我得到以下错误消息:

  

来自服务器的一般错误消息:“无法创建表'amdb.am_wta_methodtree'(错误号:150)”

这是我的sql:

create table AM_WTA_MethodInstance(
"ID" BIGINT NOT NULL,
"TRANSACTIONID" BIGINT NOT NULL,
"INVOCATIONTIME" BIGINT NOT NULL,
"METHODIDENTIFIERID" BIGINT NOT NULL,
"THREADID" VARCHAR(255) NOT NULL,
"INCLUSIVETIME" BIGINT NOT NULL DEFAULT 0,
"EXCLUSIVETIME" BIGINT NOT NULL DEFAULT 0,
"STATUS" INTEGER(1) NOT NULL DEFAULT 0,
"EXCEPTIONMESSAGE" TEXT,
PRIMARY KEY ("ID"),
FOREIGN KEY(METHODIDENTIFIERID) REFERENCES AM_WTA_MethodIdentifier(ID),
FOREIGN KEY(TRANSACTIONID) REFERENCES AM_WTA_Transaction(TRANSACTIONID) ON DELETE CASCADE)

create table AM_WTA_MethodTree(
"PARENTID" BIGINT NOT NULL,
"CHILDID" BIGINT NOT NULL,
"INVOCATIONTIME" BIGINT NOT NULL,
PRIMARY KEY ("PARENTID","CHILDID"),
FOREIGN KEY(PARENTID,CHILDID) REFERENCES AM_WTA_MethodInstance(ID,ID) ON DELETE CASCADE)

2 个答案:

答案 0 :(得分:0)

如果你创建表commit,那么在创建外键后它应该可以工作。

由于

答案 1 :(得分:0)

应该先引用方法实例表,然后才能引用它。我建议你先创建表。