2013-01-09 107 views
-1

爲什麼這個聲明不起作用?爲什麼這個聲明失敗?

編輯:我的錯,我想到了MSSQL

CREATE TABLE capacidad (
    cod_capacidad INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, 
    cod_area INTEGER UNSIGNED NOT NULL, 
    capacidad VARCHAR(100) NOT NULL, 
PRIMARY KEY(cod_capacidad), 
INDEX capacidad_FKIndex1(cod_area), 
FOREIGN KEY(cod_area) 
    REFERENCES AREA(cod_area) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION 
    ) 
ENGINE=INNODB; 
+5

看起來不錯。什麼是錯誤? – Kermit

+1

你的'AREA'表是否存在? –

+0

對不起,我發現錯誤:AREA是一個關鍵字,這個原因是問題,謝謝你的回答 – luchopintado

回答

-1

嘗試使用外語法CREATE INDEX聲明CREATE TABLE創建索引。

PS。此聲明適用於我的數據庫。

2

拿不到錯誤150:你必須檢查以下內容:

  1. 這兩個表必須是ENGINE = InnoDB的
  2. 這兩個表必須具有相同的字符集。
  3. 父表中的PK列和FK列必須是相同的數據類型。
  4. 父表和FK列中的PK列(如果它們具有定義歸類類型)必須具有相同的歸類類型;
  5. 如果外鍵表中已有數據,則FK列值必須與父表PK列中的值匹配。

希望這會有所幫助。

ps:你應該分享你的另一張桌子。