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)
);

單個列約束稱爲列約束,涉及到其餘列關聯約束稱爲表約束。習慣

相關文章
相關標籤/搜索