sql >> データベース >  >> RDS >> PostgreSQL

列にDATE制約がある場合は、空の文字列をNULLに変更します

    NULLIFを使用します INSERTステートメント内:

    INSERT INTO your_table (cols..., some_date) VALUES (..., NULLIF(your_input_field, ''))
    

    問題の値がいくつかの値のいずれかである場合にNULLを挿入する場合は、CASEステートメントを使用するのが最も簡単な場合があります。

    INSERT INTO your_table (cols..., some_date)
    VALUES (..., CASE WHEN your_input_field IN ('', '#', '-', '--', '??') THEN NULL ELSE your_input_field END)
    

    簡単であれば、配列でも同じことができます:

    INSERT INTO your_table (cols..., some_date)
    VALUES (..., CASE WHEN your_input_field = ANY('{"",#,-,--,??}'::TEXT[]) THEN NULL ELSE your_input_field END)
    


    1. 'Order by'が指定されていない場合、クエリはレコードセットに対してどの順序を選択しますか?

    2. MySQLの数学関数はPHPよりも高速ですか?

    3. mysqlの単一のクエリで複数のテーブルを更新します

    4. MySQL-隣接リストモデル-深さを取得