Postgresql中如何给表添加新列

时间:2024-10-14 13:48:07

1、Postgresql自带工具psql连接数据库 psql -Upostgres -h 127.0.0.1 pg_test_db(我们这里使用自带用户postgres, 数据库安装在本机127.0.0.1)

Postgresql中如何给表添加新列

2、创建schema:pg_test_db=# create schema schema_a巳呀屋饔,创建表pg_test_db=# create table schema_a.table_a(id int, name varchar);

Postgresql中如何给表添加新列

3、现在我们要添加descr列。由于我们的脚本必须能够允许多次运行,所以再添加列的时候必须判断表中是否descr已经存在。Postgresql中information_schema.columns包含所有表的列信息。

Postgresql中如何给表添加新列
Postgresql中如何给表添加新列

4、脚本内容:DO language plpgsql $$幞洼踉残BEGIN RAISE INFO '*************** t髫潋啜缅est_add_column.sql begins'' ***************'; if not exists (select 1 from information_schema.columns where table_schema = 'schema_a' and table_name = 'table_a' and column_name = 'descr') then alter table schema_a.table_a add column descr varchar; end if; RAISE INFO '*************** test_add_column.sql completes'' ***************'; EXCEPTION WHEN OTHERS THEN RAISE NOTICE '*************** Patch ''test_add_column.sql'' fails : ErrCode (%) (%)', SQLSTATE, SQLERRM; RAISE;END;$$;保存为/home/kian.gao/Desktop/test_add_column.sql

5、在psql中使用\i /home/kian.gao/Desktop/test_add_column.sql 命令执行该sql文件即可, 多次运行也不会报错,如果没有事先判断多次运行就会报错,因为该列已经存在。

Postgresql中如何给表添加新列

6、希望能对Postgresql初学者有所帮助!

© 手抄报圈