我目前正在尝试有一个单一的sql脚本。我可以通过一个接一个地顺序执行所有脚本来达到我的最终结果。
目前,我的脚本创建了一堆表和存储过程,所有这些都封装在一个事务/开始和End中。
DO $$
BEGIN
CREATE TABLE IF NOT EXISTS licenses (
license_id smallint NOT NULL,
name varchar(25) NOT NULL,
PRIMARY KEY (license_id)
);
..... create lots of tables ....
END$$;
现在,我尝试向该脚本添加两个存储过程,但由于存储过程包含开始,而这在现有事务中不起作用,所以失败了。
我可以把存储过程放在第一个事务的下面,但是新的存储过程应该只有在创建表的前一个事务提交后才执行。
1条答案
按热度按时间yqkkidmi1#
您使用的开始不是SQL command BEGIN,而是PL/pgSQL block structure
要启动事务,请坚持使用SQL: