0

我使用 Postgresql,如果存在我想删除表。我的代码是

execute 'drop table if exists production.'|| layer_name || '' into result_var;
exception 
    when others then 
    execute 'insert into production.'|| layer_name || ' select * from staging.'|| layer_name ;
return 1;

但如果不存在表,则表示异常。我不想抛出异常

有谁能够帮我?

4

1 回答 1

3

DROP TABLE不返回任何行,因此INTO不得使用该子句。

此外,不要WHEN OTHERS在会吃掉任何错误的异常块中使用它。部署代码后,调试和故障排除问题都令人沮丧。

如果不是这个子句,你就会收到错误消息,说明它为什么不起作用。

于 2013-10-29T14:01:52.510 回答