PostgreSql 项目实战 9 - 设置默认值

3 阅读1分钟

1 创建表

CREATE TABLE stock_availability (
   product_id INT PRIMARY KEY,
   available BOOLEAN NOT NULL DEFAULT FALSE  -- 布尔类型默认值
);
CREATE TABLE user_profile (
   id SERIAL PRIMARY KEY,
   username VARCHAR(50) NOT NULL,
   created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,  -- 时间戳默认值
   status INT DEFAULT 1  -- 数值默认值
);

2 修改表

-- 为现有字段添加默认值
ALTER TABLE stock_availability 
ALTER COLUMN available SET DEFAULT FALSE;



-- 修改现有字段的默认值(语法与添加相同)
ALTER TABLE user_profile 
ALTER COLUMN status SET DEFAULT 1;

-- 移除字段的默认值
ALTER TABLE user_profile 
ALTER COLUMN status DROP DEFAULT;

3 常用默认值

数据类型常用默认值示例说明
布尔类型DEFAULT FALSEDEFAULT 't'PostgreSQL支持TRUE/FALSE,也支持't'/'f''yes'/'no''1'/'0'等文字值
数值类型DEFAULT 0DEFAULT 1.5整数或浮点数。
文本类型DEFAULT 'Unknown'DEFAULT ''空字符串或特定文本。
时间类型DEFAULT CURRENT_TIMESTAMP当前时间