创建具有检查约束的表时出现SQL错误

时间:2018-04-01 11:00:32

标签: mysql sql

尝试使用sql创建一个表但得到&#34的错误;符号名称是预期的!如果没有反引号,则保留关键字不能用作列名。"。

Create TABLE Tour (  
    Tour_ID int AUTO_INCREMENT,  
    Tour_Title VARCHAR(15) Not NULL,  
    Cost decimal(4,2) DEFAULT '2000.00',   
    CONSTRAINT tour_pk PRIMARY KEY (Tour_ID),  
    CONSTRAINT Ck_cost CHECK Cost BETWEEN 1500 and 2500  
    );

CHECK语句出错,所以我不知道保留关键字出错的原因。无处不在,所以希望不要问一个愚蠢的问题。

1 个答案:

答案 0 :(得分:1)

MySQL没有实现check约束,因此没有实用程序来包含它们。但是,它应该正确解析它们。

我认为你缺少括号:

Create TABLE Tour (  
    Tour_ID int AUTO_INCREMENT,  
    Tour_Title VARCHAR(15) Not NULL,  
    Cost decimal(4,2) DEFAULT '2000.00',   
    CONSTRAINT tour_pk PRIMARY KEY (Tour_ID),  
    CONSTRAINT Ck_cost CHECK (Cost BETWEEN 1500 and 2500) 
);

我应该强调,如果您确实想要实施检查,则需要在应用程序中或使用触发器执行此操作。