如何ALTER TABLE添加CHECK约束?

时间:2018-05-03 13:53:31

标签: sql alter

我想改变我已经创建的ZIPCODE表,以便sales_tax_applied字段永远不会有负值。这是我已经创建的表的代码:

CREATE TABLE ZIPCODE 
( 
  city VARCHAR(50) NOT NULL, 
  state CHAR(2) NOT NULL, 
  zipcode VARCHAR(20) NOT NULL, 
  sales_tax_applied DECIMAL(10,4) NOT NULL, 
  PRIMARY KEY (zipcode) 
);

能够做到这一点的代码是什么?注意:所有字段必须为NOT NULL。

谢谢

1 个答案:

答案 0 :(得分:2)

你会这样做:

alter table zipcode add constraint chk_zipcode_sales_tax_applied
    check (sales_tax_applied >= 0);

您还可以通过多种方式将其添加到create table语句中,例如:

CREATE TABLE ZIPCODE ( 
  city VARCHAR(50) NOT NULL, 
  state CHAR(2) NOT NULL, 
  zipcode VARCHAR(20) NOT NULL, 
  sales_tax_applied DECIMAL(10,4) NOT NULL, 
  PRIMARY KEY (zipcode),
  constraint chk_zipcode_sales_tax_applied check (sales_tax_applied >= 0)
);