0
如何複製一行,排除幾列,而不列出我想要複製的每一列?我擔心的是include
與exclude
相比,如果我添加一個新的列或從表中刪除一列,我必須記得更新這個存儲過程來做克隆以列出新列。PostgreSQL複製行減少幾列
如何複製一行,排除幾列,而不列出我想要複製的每一列?我擔心的是include
與exclude
相比,如果我添加一個新的列或從表中刪除一列,我必須記得更新這個存儲過程來做克隆以列出新列。PostgreSQL複製行減少幾列
您必須明確列出列或使用*
。 * except short_list
沒有快捷方式。您可以嘗試使用動態SQL黑客這一點,從現有列如information_schema.columns
準備查詢:
t=# select column_name,ordinal_position from information_schema.columns where table_name ='s160' order by ordinal_position;
column_name | ordinal_position
-------------+------------------
id | 1
a | 2
b | 3
c | 4
d | 5
(5 rows)
因此節省以前的列清單昂比較它針對當前會給你新的列,您可以在execute format(...
適應變化,但說實話 - 它會導致更多的問題,然後每次指定明確的列列表。
爲什麼不復制整行,然後將排除列設置爲NULL? –
因爲我會得到主鍵違規 – Gargoyle