我需要更新表中的一些列(stats)&如果失败或成功(无论结果如何),那么在表中创建一个新记录(notifications),不使用分号(;)在第一次和第二次查询之间
- 第一次查询:*
UPDATE stats SET delivered = delivered + 1 WHERE id = 1
- 第二次查询:*
INSERT INTO notifications (text) VALUES ('table stats updated')
(The上面的示例不起作用。)
请注意
- 我不能使用过程、函数或触发器,只能使用简单的查询。
- 我不能用分号(;)在两个查询之间。
- 需要首先执行更新查询。
我已经尝试了一些没有结果的查询,例如
UPDATE stats SET delivered = delivered + 1 WHERE id =
(INSERT INTO notifications (text) VALUES ('table stats updated') RETURNING id)
型
1条答案
按热度按时间6pp0gazn1#
如果希望所有命令都在一个事务语句中,则可以使用多个WITH在一个事务中执行多个命令:
规则示例:
下面的发送更新将转到规则,插入到通知中,然后通知将检索插入字段通知的选择。
第二个图像上有规则返回和无规则的表:
第一节第一节第一节第一节第一次