因为可以使用
添加PostgreSQL 9.1枚举值ALTER TYPE my_type ADD VALUE new_value;
但是,尝试将此作为较大脚本的一部分运行会产生错误:
ALTER TYPE ... ADD无法从函数或多命令字符串执行
这使脚本更改在生产中应用变得非常麻烦,因为支持人员必须记住,虽然大多数脚本可以“正常”运行,但是有一些“特殊”脚本需要在pgAdmin并手动,一块一块地运行。我用Google搜索了这个并且我理解了限制 - 无法在事务或“多命令字符串”的一部分中添加枚举值。没关系。我不需要这样做。我只想添加多个枚举值并执行其他不相关的SQL语句,而不必一次为Postgres提供一个语句。
换句话说:我希望能够运行pgAdmin和psql中的单个脚本,它只是在我一次突出显示一行并按F5(运行)时执行与pgAdmin相同的操作。有没有办法做到这一点,也许用plpgsql?
答案 0 :(得分:0)
看起来终于可以在PostgreSQL 12中修复了。
https://www.postgresql.org/docs/devel/sql-altertype.html说
如果在事务块内执行ALTER TYPE ... ADD VALUE(向枚举类型添加新值的形式),则直到提交事务后才能使用新值。