PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Ändern Sie die leere Zeichenfolge in NULL, wenn die Spalte eine DATE-Einschränkung hat

Verwenden Sie NULLIF in Ihrer INSERT-Anweisung:

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

Wenn Sie NULL einfügen möchten, wenn es sich bei dem fraglichen Wert um einen von mehreren Werten handelt, ist es möglicherweise am einfachsten, eine CASE-Anweisung zu verwenden:

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

Könnte dasselbe auch mit einem Array machen, wenn das einfacher ist:

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