2013-09-23 4 views
0

На самом деле я использовал этот sql-скрипт для создания схемы таблиц в mysql 5.0.24, и он просто работал нормально, проблема в том, что я пробовал один и тот же скрипт на mysql 5.5. 16 я получаю ниже сообщение об ошибке:mysql - создание таблицы с внешними ключами - ошибка 150

general error message from server: "can't create table '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) 
+0

Как вы вошли в систему mysql. возможно, у пользователя нет прав на создание таблицы. – Tamseyc

+0

Фактически у меня есть привилегия root в базе данных. – atari83

ответ

0

При создании таблицы фиксации и после того, как создать внешний ключ, он должен работать.

Благодаря

+0

Ну, сначала я создал таблицы, а затем я попытался создать внешние ключи, но все равно такую ​​же ошибку: 'mysql> alter table AM_WTA_MethodTree добавить FOREIGN KEY (PARENTID, CHILDID) ССЫЛКИ AM_WTA_MethodInstance (ID, ID) ON DELETE CASCADE; ' ' ERROR 1005 (HY000): не удается создать таблицу «AMDB. # Sql-dbf_4d» (errno: 150) ' – atari83

0

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

+0

Я сначала создал таблицу экземпляров метода (перед таблицей дерева методов), а затем я попытался создать внешние ключи ... но такой же результат. – atari83

Смежные вопросы