2012-03-02 34 views
0

試圖在「字符改變類型」欄中清除數據,我在PHP發送以下PostgreSQL的要求:如何在PostgreSQL中用「字符變化」類型清空字段?

pg_query("UPDATE ".$database['prefix']."products SET file='' WHERE id=".$id) or die(pg_last_error()); 

字段不是忠實地清除,但兩個單引號都寫在上面。

在數據庫中,我試圖取代「」 ::字符改變 通過NULL ::字符改變,但它不會改變任何東西。

應該更改什麼以便該字段可以清空?

回答

4

該字段未被真正清除,但是在其中寫入了兩個單引號。

不,將寫入一個空字符串(長度爲零的字符串)。

如果你想「刪除」,您需要將列設置爲NULL

UPDATE products 
    SET file = NULL 
WHERE ... 
+1

感謝您的任何內容。我只是試了一下,這是正確的:NULL爲空,字段被真空清空。關於爲空字符串顯示的兩個單引號,它似乎是由pgAdmin選擇的在「編輯數據」網格中顯示空字符串的表示形式。 – user1244689 2012-03-02 09:55:40

+0

這裏有一個有趣的爭論是否最好使用NULL或空字符串:http://stackoverflow.com/questions/167952/null-or-empty-string-to-represent-no-data-in-table-列 – user1244689 2012-03-02 10:19:36

+0

@ user1244689:也是一個很長時間的Oracle用戶,我更喜歡NULL(因爲Oracle沒有空字符串......) – 2012-03-02 10:35:41

相關問題