作为PostgreSQL的初学者,我正在编写一个shell脚本来验证是否所有数据都已复制到子表。然后,我将进行其他活动。如果没有复制所有数据,则应暂停剩余的代码执行。在我的脚本中,使用insert into
命令将purchase_history_pre_partitioning
表中的所有数据复制到新创建的purchase_history
表中。
为了验证是否所有数据都已复制,我编写了以下DO语句来比较两个表中的行数。但是,有一个语法错误。请告诉我如何解决这个问题。
DO声明:
do $$
begin
if (((select count(*) from purchase_history) !=
(select count(*) from purchase_history_pre_partitioning)))
then
EXIT
end
$$
错误代码:
错误:语法错误在或接近“结束”行7:结束^
SQL状态:42601字符:143
2条答案
按热度按时间liwlm1x91#
你应该在每个SQL语句的末尾添加一个后缀。通过向
EXIT
添加一个扩展来修改脚本,并使用END IF
结束if语句5hcedyr02#
试试这个代码。它将确保purchase_history_pre_partitioning表中的所有数据都正确地移动到PostgreSQL purchase_history表中:
希望它能起作用:)