У вас есть проблема с преобразованием типов, в данном случае от VARCHAR
до INT
. Если ваш стол:
CREATE TABLE customers (
email text NOT NULL,
agency_id integer NULL
);
Вам необходимо конвертировать:
- Значение
''
до null
.
- Числовое значение в текстовой форме, например от
'123'
(varchar) до 123
(int).
Будет работать следующий запрос:
WITH data(email, agency_id, address, city, zipcode) AS (
VALUES ('email@domain.tld', '', 'My Address', 'My City', 'My Zipcode')
)
INSERT INTO customers (email, agency_id)
SELECT email,
case when agency_id = '' then null
else agency_id::int
end
FROM data;