一个表某列能够设置默认值。首先建立无默认值表。默认值也是一种约束。code
CREATE TABLE products (productsid INT ,productsname VARCHAR(20),productsprice NUMERIC); ---设置productsprice默认值0.01 ALTER TABLE "public".products ALTER COLUMN productsprice SET DEFAULT 0.01; ---删除productsprice默认值0.01 ALTER TABLE products ALTER COLUMN productsprice DROP DEFAULT;
也能够新建表时同时设置默认值。引用
---建立表products ---设置列productsprice 默认值1.00 CREATE TABLE products (productsid INT ,productsname VARCHAR(20),productsprice NUMERIC DEFAULT 1.00);
下面介绍给约束命名,约束命名后可让错误信息更加清晰明了,同时也能够引用。命名
---约束命名为checkprice CREATE TABLE products ( productsno INTEGER , productsname TEXT , price NUMERIC CONSTRAINT checkprice CHECK (price >0) );
约束还能够引用其余列。di
---引用discountprice列 CREATE TABLE products ( productsno INTEGER , productsname TEXT , price NUMERIC CONSTRAINT checkprice CHECK (price >0), ---普通价格 discountprice NUMERIC CHECK (discountprice >0), ---折扣价格 CHECK (price >discountprice) );
固然咱们还可让代码显示更加清晰,这个能够根据我的习惯选择。co
CREATE TABLE products ( productno INTEGER, name TEXT, price NUMERIC, discountedprice NUMERIC, CHECK (price > 0), CHECK (discountedprice > 0), CHECK (price > discountedprice) ); ---另外一种等价写法,根据我的习惯等选择 CREATE TABLE products ( productno INTEGER, name TEXT, price NUMERIC, discountedprice NUMERIC, CHECK (price > 0), CHECK (discountedprice > 0 AND price > discountedprice) );
单个列约束称为列约束,涉及到其余列关联约束称为表约束。习惯