我正在使用 postgresql 9.3。如果我想添加以下步骤并将这些步骤作为例程调用,使用函数或存储过程会更好吗?
我的基本步骤是:
RENAME TABLE FOOBAR_1234.table1_org TO FOOBAR_1234.table1_old;
DELETE FOOBAR_1234.table1_old WHERE 1=1;
RENAME TABLE FOOBAR_1234.table1 TO FOOBAR_1234.table1_org;
我还需要像1234
使用任何 ID 一样灵活地参数化 ID,例如5678
.
如果你有一个例子,那也会很有帮助。
PostgreSQL 中没有存储过程之类的东西。PostgreSQL 的所有功能都是用多种语言定义的 SQL 可调用函数 -
LANGUAGE sql
、LANGUAGE plpgsql
、LANGUAGE plperl
等。此外,没有
RENAME TABLE
命令。你想要ALTER TABLE ... RENAME TO ...
。这个特定示例必须使用 PL/PgSQL 编写,
EXECUTE
因为它依赖于动态 SQL。请参阅 Stack Overflow 上使用 PL/pgSQL 的众多现有示例EXECUTE
。类似于 PL/PgSQL 函数的东西:编辑:好的,更完整的例子: