我希望能够对我的 postgresql 模式进行版本控制,这样如果我们推出一个新的修订版,它只会为该修订版添加新的更改。示例:如果当前修订版为 1,并且我想为修订版 2 添加一列到现有表中,我想执行与此类似的操作:
IF (SELECT get_current_revision()) < 2 THEN
ALTER TABLE Foo ADD COLUMN bar varchar(32);
END IF;
get_current_revision() 函数仅查询版本表中的当前修订版(设置为 1)(即,如果表不存在,则函数返回 0 或实际的当前修订版)。
但是当我执行这种脚本时,我得到一个错误“'if'处或附近的语法错误”。所以我认为你不能以独立的方式执行这样的 if 语句。有人有什么建议吗?
最佳答案
你可以使用匿名代码块:
DO $$
<<first_block>>
DECLARE
BEGIN
IF (SELECT get_current_revision()) < 2 THEN
ALTER TABLE Foo ADD COLUMN bar varchar(32);
END IF;
END first_block $$;
关于sql - 如何根据 bool 值更改表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57047009/