2015-01-21 112 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 
    ) ; 
相关问题