PostgresSQL:使用 JDBC 跳过 SQL 客户端中的错误
PostgreSQL: skip erros in SQL clients using JDBC
我想在使用 JDBC 的客户端(不是 postgreSQL pslq 客户端)中执行 SQL 脚本。在这个脚本中,我想做这样的事情:
skip errors on;
alter table foo ...;
skip errors off;
有没有办法用 PostgreSQL >= 9.1 做到这一点?
我发现此线程使用 DO
块和错误代码提供了很好的解决方案:
How to continue sql script on error?
并为我的问题创建一个函数:
create or replace function continueOnError(v_sqlStatement text)
returns void
language plpgsql
as '
BEGIN
execute v_sqlStatement;
EXCEPTION
WHEN invalid_schema_name
OR undefined_table
OR undefined_column
THEN RAISE WARNING ''Continued on error sql statement: %'', v_sqlStatement;
END;
';
...使用它:
select continueOnError('alter table test add constraint fk_test_valueid foreign key (valueid) references value(id)');
我想在使用 JDBC 的客户端(不是 postgreSQL pslq 客户端)中执行 SQL 脚本。在这个脚本中,我想做这样的事情:
skip errors on;
alter table foo ...;
skip errors off;
有没有办法用 PostgreSQL >= 9.1 做到这一点?
我发现此线程使用 DO
块和错误代码提供了很好的解决方案:
How to continue sql script on error?
并为我的问题创建一个函数:
create or replace function continueOnError(v_sqlStatement text)
returns void
language plpgsql
as '
BEGIN
execute v_sqlStatement;
EXCEPTION
WHEN invalid_schema_name
OR undefined_table
OR undefined_column
THEN RAISE WARNING ''Continued on error sql statement: %'', v_sqlStatement;
END;
';
...使用它:
select continueOnError('alter table test add constraint fk_test_valueid foreign key (valueid) references value(id)');