2015-04-06 56 views
0

我在名爲notes的模式中有一列。它包含每次記錄更新時應更新的修訂註釋。如何在不覆蓋的情況下將數據附加到現有條目?如何追加到現有記錄?

例如,目前它顯示:

「09022014,更新用戶的GSDA ID。」

我跑我的查詢後,我想看看: 「09022014,更新用戶的GSDA ID 04062015,更新TTFIA建築 場」

回答

2

:連接(||)當前記下新注:

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

1

連接使用級聯運算符||使用新值的現有列值。

「09022014,更新的用戶的GSDA ID。04062015,更新的TTFIA建築領域。」

如果你有雙引號與價值本身一起,再有就是你需要照顧的額外的東西,即TRIM雙引號在現有的權利列值。

而且,當然,您需要在現有值和新值之間保留一個空格。

例如,

UPDATE table_name 
    SET notes = rtrim(notes, '"') || ' ' || new_note || '"';