首页 > 软件开发 > 编程语言 >

Postgresql中如何给表添加新列

来源:互联网 2023-03-17 00:15:14 216

在软件开发和维护过程中由于需求变动或者新需求,经常需要在PostgreSQL数据库中表中添加新列,而且要确保增量脚本能被多次运行而不出现错误。本篇经验告诉各位如何正确的添加新列。PzO办公区 - 实用经验教程分享!

Postgresql中如何给表添加新列PzO办公区 - 实用经验教程分享!

工具/原料

  • postgresql,computer

方法/步骤

  • 1

    Postgresql自带工具psql连接数据库 psql -Upostgres -h 127.0.0.1 pg_test_db(我们这里使用自带用户postgres, 数据库安装在本机127.0.0.1)PzO办公区 - 实用经验教程分享!

    Postgresql中如何给表添加新列PzO办公区 - 实用经验教程分享!

  • 2

    创建schema:pg_test_db=# create schema schema_a,创建表pg_test_db=# create table schema_a.table_a(id int, name varchar);PzO办公区 - 实用经验教程分享!

    Postgresql中如何给表添加新列PzO办公区 - 实用经验教程分享!

  • 3

    现在我们要添加descr列。由于我们的脚本必须能够允许多次运行,所以再添加列的时候必须判断表中是否descr已经存在。Postgresql中information_schema.columns包含所有表的列信息。PzO办公区 - 实用经验教程分享!

    Postgresql中如何给表添加新列PzO办公区 - 实用经验教程分享!

    Postgresql中如何给表添加新列PzO办公区 - 实用经验教程分享!

  • 4

    脚本内容:PzO办公区 - 实用经验教程分享!

    DO language plpgsql $$PzO办公区 - 实用经验教程分享!

    BEGINPzO办公区 - 实用经验教程分享!

    RAISE INFO '*************** test_add_column.sql begins'' ***************';PzO办公区 - 实用经验教程分享!

    if not exists (select 1 from information_schema.columns where table_schema = 'schema_a' PzO办公区 - 实用经验教程分享!

    and table_name = 'table_a'PzO办公区 - 实用经验教程分享!

    and column_name = 'descr')PzO办公区 - 实用经验教程分享!

    thenPzO办公区 - 实用经验教程分享!

    alter table schema_a.table_a add column descr varchar;PzO办公区 - 实用经验教程分享!

    end if;PzO办公区 - 实用经验教程分享!

    RAISE INFO '*************** test_add_column.sql completes'' ***************';PzO办公区 - 实用经验教程分享!

    EXCEPTIONPzO办公区 - 实用经验教程分享!

    WHEN OTHERS THENPzO办公区 - 实用经验教程分享!

    RAISE NOTICE '*************** Patch ''test_add_column.sql'' fails : ErrCode (%) (%)', SQLSTATE, SQLERRM;PzO办公区 - 实用经验教程分享!

    RAISE;PzO办公区 - 实用经验教程分享!

    ;PzO办公区 - 实用经验教程分享!

    $$;PzO办公区 - 实用经验教程分享!

    保存为/home/kian.gao/Desktop/test_add_column.sqlPzO办公区 - 实用经验教程分享!

  • 5

    在psql中使用\i /home/kian.gao/Desktop/test_add_column.sql 命令执行该sql文件即可, 多次运行也不会报错,如果没有事先判断多次运行就会报错,因为该列已经存在。PzO办公区 - 实用经验教程分享!

    Postgresql中如何给表添加新列PzO办公区 - 实用经验教程分享!

  • 6

    希望能对Postgresql初学者有所帮助!PzO办公区 - 实用经验教程分享!

  • 6本页面未经许可获取自百度经验
  • 注意事项

    • 如果认为本经验对您有所帮助,请点击下面【投票】支持一下小编!如果您想以后随时浏览请点击下面的【收藏】,如果您认为本经验能够帮助到您的朋友,请点击页面右下方的双箭头进行分享。

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!PzO办公区 - 实用经验教程分享!


    标签: 编程语言SQL

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码