12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- -- ===============================================
- -- 修改business_cards表,新增age和native_place字段
- -- 执行日期: 请在执行前填写实际日期
- -- 修改说明: 为名片表新增年龄和籍贯字段,支持更完整的人员信息管理
- -- ===============================================
- -- 1. 新增age字段 (年龄字段)
- ALTER TABLE business_cards
- ADD COLUMN age INTEGER;
- -- 2. 新增native_place字段 (籍贯字段)
- ALTER TABLE business_cards
- ADD COLUMN native_place TEXT;
- -- 3. 为新增字段添加注释
- COMMENT ON COLUMN business_cards.age IS '年龄字段 - 存储人员年龄信息,取值范围1-150';
- COMMENT ON COLUMN business_cards.native_place IS '籍贯字段 - 存储人员籍贯或出生地信息';
- -- 4. 验证字段是否成功添加
- SELECT
- column_name,
- data_type,
- is_nullable,
- column_default
- FROM information_schema.columns
- WHERE table_name = 'business_cards'
- AND column_name IN ('age', 'native_place')
- ORDER BY column_name;
- -- 5. 查看字段注释
- SELECT
- a.attname AS column_name,
- format_type(a.atttypid, a.atttypmod) AS data_type,
- COALESCE(pg_catalog.col_description(a.attrelid, a.attnum), '无注释') AS description
- FROM
- pg_catalog.pg_attribute a
- JOIN
- pg_catalog.pg_class c ON a.attrelid = c.oid
- JOIN
- pg_catalog.pg_namespace n ON c.relnamespace = n.oid
- WHERE
- c.relname = 'business_cards'
- AND a.attname IN ('age', 'native_place')
- AND a.attnum > 0
- AND NOT a.attisdropped
- ORDER BY a.attname;
- -- ===============================================
- -- 执行说明:
- -- 1. 请在生产环境执行前先在测试环境验证
- -- 2. 建议在业务低峰期执行此脚本
- -- 3. 执行前请备份相关数据
- -- 4. 新增字段允许NULL值,不会影响现有数据
- -- ===============================================
- -- 可选:如果需要为现有记录设置默认值,可以执行以下语句
- -- UPDATE business_cards SET age = NULL WHERE age IS NULL;
- -- UPDATE business_cards SET native_place = '' WHERE native_place IS NULL;
- -- 执行完成后检查表结构
- \d business_cards;
|