我在名爲notes
的模式中有一列。它包含每次記錄更新時應更新的修訂註釋。如何在不覆蓋的情況下將數據附加到現有條目?如何追加到現有記錄?
例如,目前它顯示:
「09022014,更新用戶的GSDA ID。」
我跑我的查詢後,我想看看: 「09022014,更新用戶的GSDA ID 04062015,更新TTFIA建築 場」
我在名爲notes
的模式中有一列。它包含每次記錄更新時應更新的修訂註釋。如何在不覆蓋的情況下將數據附加到現有條目?如何追加到現有記錄?
例如,目前它顯示:
「09022014,更新用戶的GSDA ID。」
我跑我的查詢後,我想看看: 「09022014,更新用戶的GSDA ID 04062015,更新TTFIA建築 場」
:連接(||)當前記下新注:
update tablename set notes = notes || " new note"
where id = 123;
哦,別忘了正則表達式:
update tablename set notes =
regexp_replace('notes', '^(.*)$', '\1' || ' note 2')
where id = 123;
這敗露一個意想不到的結果使用regexp_replace,我在這裏問你在哪裏感興趣:Explain unexpected regexp_replace result
連接使用級聯運算符||
使用新值的現有列值。
「09022014,更新的用戶的GSDA ID。04062015,更新的TTFIA建築領域。」
如果你有雙引號與價值本身一起,再有就是你需要照顧的額外的東西,即TRIM的雙引號在現有的權利列值。
而且,當然,您需要在現有值和新值之間保留一個空格。
例如,
UPDATE table_name
SET notes = rtrim(notes, '"') || ' ' || new_note || '"';