mysql - создание таблицы с внешними ключами - ошибка 150

На самом деле я использовал этот сценарий SQL для создания схемы таблицы на MySQL 5.0.24, и он просто работал нормально, проблема в том, что когда я попробовал тот же сценарий на MySQL 5.5.16, я получаю сообщение об ошибке ниже:

общее сообщение об ошибке от сервера: "невозможно создать таблицу" amdb.am_wta_methodtree "(errno: 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 ответа

Если вы создаете таблицы commit и после создания внешнего ключа это должно работать.

Спасибо

Таблица экземпляра метода должна быть создана прежде, чем на нее можно будет сослаться. Я предлагаю вам сначала создать таблицы.

Другие вопросы по тегам