簡體   English   中英

PostgreSQL SELECT,UPDATE和INSERT一起

[英]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;

其中xy聲明為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM