0
我有四個表具有相同的結構。假設他們有一個專欄名稱。我需要檢查的name
列中是否存在table1
列名中的值。比較兩個表的數據,將公共數據存儲在第三個表中,否則在第四個表中
如果存在,我需要在table3
的列name
的列中插入該名稱,否則在table4
的列name
的列中插入該名稱。
我有四個表具有相同的結構。假設他們有一個專欄名稱。我需要檢查的name
列中是否存在table1
列名中的值。比較兩個表的數據,將公共數據存儲在第三個表中,否則在第四個表中
如果存在,我需要在table3
的列name
的列中插入該名稱,否則在table4
的列name
的列中插入該名稱。
假設INSERT
和Postgres ...
我會用一個data-modifying CTE(Postgrs 9.1+)與一個SELECT
和兩個INSERT
:
WITH cte AS (
SELECT t1.name, t2.name IS NULL AS t2_missing
FROM table1 t1
LEFT JOIN table2 USING (name)
)
, ins AS (
INSERT INTO table3 (name)
SELECT name FROM cte WHERE NOT t2_missing
)
INSERT INTO table4 (name)
SELECT name FROM cte WHERE t2_missing;
同樣是不可能在MySQL(無熱膨脹係數,不提及可寫的CTE)。
INSERT或UPDATE? MySQL或Postgres? –