我是pgSQL的新手,所以我正在执行不同的sql表示 - 这是下一个 - 我想通过最后一个sql命令获取受影响行的计数:
delete from "Menu" where "ID" = 0;
GET DIAGNOSTICS integer_var = ROW_COUNT;
select integer_var;
Run Code Online (Sandbox Code Playgroud)
但是pgAdmin说:
ERROR: syntax error at or near "GET"
LINE 1: GET DIAGNOSTICS integer_var = ROW_COUNT;
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
从PostgreSQL 9.0开始,您可以使用DO来执行匿名代码块
DO $$
DECLARE
integer_var integer;
BEGIN
delete from "Menu" where "ID" = 0;
GET DIAGNOSTICS integer_var = ROW_COUNT;
raise notice 'Rows removed: %', integer_var;
END$$;
Run Code Online (Sandbox Code Playgroud)
我用通知替换了最后一个选项,因为我不完全确定你想要用该选择的结果做什么,这种方式最容易说明DO.
如果这最终将被合并到某个程序中,您可能有可能直接检索受影响的行数.libpq包含函数PQcmdTuples,它返回受影响的行数.PHP具有函数pg_affected_rows,在JDBC中,executeUpdate返回受影响的行数.
| 归档时间: |
|
| 查看次数: |
1905 次 |
| 最近记录: |