Fab*_*ert 2 postgresql plpgsql
我使用 Postgres 一段时间了,但对 PL/pgSQL 完全陌生。
\n\n我正在努力让基本的for 循环发挥作用。
\n\n这工作正常:
\n\n-- Without SELECT\nDO $$\nBEGIN \n FOR counter IN 1..6 BY 2 LOOP\n RAISE NOTICE 'Counter: %', counter;\n END LOOP;\nEND; $$;\nRun Code Online (Sandbox Code Playgroud)\n\n但我真正想要的是迭代查询的结果SELECT。
我一直遇到这个错误:
\n\n\n\n\n查询错误:错误:行循环的循环变量必须是记录或行变量或标量变量列表
\n
对我来说听起来很晦涩,谷歌搜索也没有帮助。
\n\n我想使用我自己的数据中的一个表(我希望使用 a SELECT * FROM mytable WHERE \xe2\x80\xb9whatever\xe2\x80\xba),但我意识到我什至无法让for 循环处理更简单的 data。
拿着它:
\n\n-- with a SELECT\nDO $$\nBEGIN \nRAISE NOTICE 'Get ready to be amazed\xe2\x80\xa6';\nFOR target IN SELECT * FROM generate_series(1,2) LOOP\n RAISE NOTICE 'hello'\nEND LOOP;\nEND; $$\nRun Code Online (Sandbox Code Playgroud)\n\n这也会产生上述错误。我想打印一个简单的东西来掌握循环语法,例如:
\n\n\n\n\n你好1
\n
\n你好2
我究竟做错了什么?
\nJGH*_*JGH 10
必须声明迭代器\n
\n\nDO $$\nDECLARE \n target record;\nBEGIN \n RAISE NOTICE 'Get ready to be amazed\xe2\x80\xa6';\n FOR target IN SELECT * FROM generate_series(1,2) LOOP\n RAISE NOTICE 'hello';\n END LOOP;\nEND; $$;\n\nNOTICE: Get ready to be amazed\xe2\x80\xa6\nNOTICE: hello\nNOTICE: hello\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
9314 次 |
| 最近记录: |