无法将检查约束添加到列

时间:2017-10-14 17:23:24

标签: mysql phpmyadmin

我正在尝试创建一个包含几列的简单表。我想在其中一列中添加一个检查约束,见下文:

create table jobs (
    JOB_ID varchar(10) not null,
    JOB_TITLE varchar(35) not null,
    MIN_SALARY decimal(6,0),
    MAX_SALARY decimal(6,0) 
    CHECK(MAX_SALARY<=25000)
    );

这会返回CHECK行的错误。

  

预计会有逗号或结束括号。 (在CHECK附近)

如果我在前一行添加逗号; MAX_SALARY decimal(6,0),,我收到更多错误:

  

预计会有一个符号名称!保留关键字不能用作没有反引号的列名。

     

MAX_SALARY附近的语句意外开始

     

25000附近的意外开始

1 个答案:

答案 0 :(得分:0)

<强>更新

只需创建没有CHECK的表,然后再改变它:

  create table jobs (
    JOB_ID varchar(10) not null,
    JOB_TITLE varchar(35) not null,
    MIN_SALARY decimal(6,0),
    MAX_SALARY decimal(6,0)
    );
ALTER TABLE jobs ADD CHECK (MAX_SALARY<=25000);

在MySQL中:

create table jobs (
    JOB_ID varchar(10) not null,
    JOB_TITLE varchar(35) not null,
    MIN_SALARY decimal(6,0),
    MAX_SALARY decimal(6,0), 
    CHECK(MAX_SALARY<=25000)    
    );

SQL Server / Oracle

 create table jobs (
    JOB_ID varchar(10) not null,
    JOB_TITLE varchar(35) not null,
    MIN_SALARY decimal(6,0),
    MAX_SALARY decimal(6,0) CHECK(MAX_SALARY<=25000)

    );

注意:CHECK不支持 MySQL约束但是你可以使用它,正如我声明的那样,但它不会给你输出!!