так далее.
В хранимую процедуру я передаю: JSON: {"name": "Name", "surname":"AAAA", "bdate": 1231212}
Есть что-то стандартное, что бы сделать UPDATE и INSERT или вручную генерируем запрос?
jsonb_each()
create temp table test (id int, test int, test2 text); create or replace FUNCTION test_json(data json) returns void AS $$ DECLARE test_row test%ROWTYPE; BEGIN insert into test select * from json_populate_record(test_row, '{"id": 1, "test": 1, "test2":"hello"}'); END; $$ LANGUAGE plpgsql; SELECT test_json('{"id": 1, "test": 1, "test2":"hello"}'); select * from test;
Все круто, но проблема возникает, если нам нужны не все значения, а остальные использовать базовые. Допустим id AI или что-то еще стоит 0 по умолчанию
упс, ошибся в функции create or replace FUNCTION test_json(data json) returns void AS $$ DECLARE test_row test%ROWTYPE; BEGIN insert into test select * from json_populate_record(test_row, data); END; $$ LANGUAGE plpgsql;
Нет, если нет в JSON всех полей, то краш
Обсуждают сегодня