PostgreSQL数据库平常学习笔记14-检查约束和列(表约束)

一个表某列能够设置默认值。首先建立无默认值表。默认值也是一种约束。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)
);

单个列约束称为列约束,涉及到其余列关联约束称为表约束。习惯

相关文章
相关标签/搜索