[英]PostgreSQL SELECT, UPDATE and INSERT together
我目前正試圖以SELECT
從表中的列,做一些算術與選定的值,然后INSERT
更新值回相同的表。 到目前為止,我正在考慮SELECT
所有列,復制到另一個表, UPDATE
該表並將其復制回去,但這似乎有點多余。
INSERT INTO tableB (x, y) SELECT x, y FROM tableA;
UPDATE tableB SET y = y + 1;
INSERT INTO tableA (x, y) SELECT x, y FROM tableB;
其中x
和y
聲明為UNIQUE(x, y)
編輯:有沒有一種方法可以避免為此事務創建另一個表?
如果要復制更改的數據,可以一次插入:
insert into tablea (x,y)
select x, y + 1
from tablea;
如果我正確地閱讀了您的邏輯,那么您只需在事務中插入兩個插入即可:
BEGIN;
INSERT INTO tableB (x, y) SELECT x, y+1 FROM tableA;
INSERT INTO tableA (x, y) SELECT x, y FROM tableB
COMMIT;
插入后不需要進行更新,因為您可以簡單地插入y
的增量值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.