我正在尝试创建一个包含几列的简单表。我想在其中一列中添加一个检查约束,见下文:
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附近的意外开始
答案 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
约束但是你可以使用它,正如我声明的那样,但它不会给你输出!!