2012-03-02 1 views
0

「文字様々なタイプ」の列のデータを消去しようとすると、私はPHPで以下のPostgreSQLのリクエストを送信します。PostgreSQLで "character varying"型のフィールドを空にするには?

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

フィールドは本当にクリアされていませんが、2つの単一引用符は、その中に書かれています。データベースで

は、私がを変える NULL ::文字で 変化 「」::文字を交換しようとしたが、それは何も変わりません。

フィールドを空にできるように変更する必要はありますか?

答えて

4

フィールドは本当に消去されませんが、2つの単一引用符がそのフィールドに書き込まれます。

いいえ、空の文字列(長さ0の文字列)が書き込まれます。あなたは

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

NULLはありがとうに列を設定する必要がある任意の内容を「削除」したい場合は

。私はちょうど試しましたが、それは正しいです:NULLでフィールドは本当に空になります。空の文字列に表示される2つの一重引用符については、 "Edit Data"グリッドに空の文字列を表示するためにpgAdminが選択した表現のようです。 – user1244689

+0

ここでは、NULL文字列または空文字列を使用する方が良いかどうか、興味深い議論があります。http://stackoverflow.com/questions/167952/null-or-empty-string-to-represent-no-data-in-table-列 – user1244689

+0

@ user1244689:また、私はNULLを好む(Oracleは空の文字列をとにかく持っていないように長い時間のOracleユーザーである...) –

関連する問題