2015-01-21 117 views
0

我已經用'id_category','rgt'和'lft'列只有一個表'category'。嘗試創建新表時出現SQL錯誤

當我嘗試創建表:

CREATE TABLE category_translation(
    id_category_translation int NOT NULL, 
    id_category int NOT NULL, 
    language_code varchar(5) NOT NULL, 
    title varchar(100) NOT NULL, 
    description varchar(255) NOT NULL, 
    PRIMARY KEY (id_category_translation), 
    KEY id_category (id_category), 
    CONSTRAINT category_translation_ibfk_1 
    FOREIGN KEY (id_category) 
    REFERENCES category (id_category) 
    ON DELETE CASCADE 
) 

此錯誤顯示出來:

ERROR: type "id_category" does not exist 
LINE 8: KEY id_category (id_category), 
      ^
+0

目前還不清楚你在這裏做什麼。你想在表'category'上觸發一個觸發器,沒問題。 (注意'trigger'和''trigger''之間的區別,你似乎混淆起來了。)但是觸發器應該做什麼?刪除'category_translation'中的相應記錄?請編輯您的問題,以明確您想要達到的目標。 – Patrick 2015-01-21 03:11:44

+1

@Patrick對不起,我錯誤地粘貼了一個完全不同的代碼 – Verh 2015-01-21 03:20:45

+0

@GrzegorzNowak你有沒有正確的觸發器?我試圖回答它:D – 2015-01-21 04:40:01

回答

0

我承擔KEY id_category (id_category),key旨在唯一索引。這裏是你可能需要的一個例子:

create table category 
    (
     id_category int primary key 
    ) ; 
create table category_translation 
    (
     id_category_translation int primary key 
      , id_category int unique constraint category_translation_ibfk_1 references category on delete cascade 
      , language_code varchar(5) not null 
      , title varchar(100) not null 
      , description varchar(255) not null 
    ) ; 
相關問題