mysql - SQL-创建带有检查约束的表时出错

标签 mysql sql

尝试使用 sql 创建表但出现错误“需要符号名称!保留关键字不能用作没有反引号的列名”。

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 语句上,所以我不知道为什么显示保留关键字错误。到处看,希望不要问一个愚蠢的问题。

最佳答案

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) 
);

我要强调的是,如果你真的想实现检查,你需要在你的应用程序中或使用触发器来实现。

关于mysql - SQL-创建带有检查约束的表时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49597343/

相关文章:

mysql - 计算 MySQL 文本列中的单词

php - 值未添加到数据库中

MySQL-Oracle桥接

mysql - 将较长的字符串与较短的字符串匹配

mysql - 将 MySQL 查询的输出转换为 utf8

sql - 如何在mysql中查找每个客户的type1和type2的交易计数

mysql - rails + SQL : include join table when no join

mysql - 如何在 mySQL 中进行简单的 SQL 请求?

php - 使用 Sql 查询显示变量的错误值

c# - SQL查询超时