我正在运行一个简单的更新查询,如下所示:
UPDATE some_table SET columnA = 'value' WHERE columnB = 'other value'Postgres中有一种方法可以在没有更新的行时引发错误或打印一些消息吗?
发布于 2011-03-27 19:43:03
在数据库中,这仅在从存储过程执行更新时才有可能。在plpgsql中:
BEGIN
UPDATE some_table SET columnA = 'value' WHERE columnB = 'other value'
IF NOT FOUND THEN
raise exception 'Nothing updated';
END IF;
END但是,不会记录该值,但会取消该命令。如果您只想记录日志,请使用raise warning,并将postgresql日志设置为包含警告。
如果您使用接口访问PostgreSQL,通常会有一个函数返回更新的值的数量。例如,在Java语言中有一个Statement类,函数是executeUpdate():
public int executeUpdate(String sql)引发SQLException
执行给定的SQL语句,该语句可以是INSERT、UPDATE或DELETE语句,也可以是不返回任何内容的SQL语句,如SQL DDL语句。
sql参数: SQL INSERT、UPDATE或DELETE语句或不返回任何内容的SQL语句
返回: INSERT、UPDATE或DELETE语句的行数,或不返回任何内容的SQL语句的0
抛出: SQLException -如果发生数据库访问错误或者给定的SQL语句生成ResultSet对象
https://stackoverflow.com/questions/5448899
复制相似问题