Я хотел бы выполнить вставку перед обновлением некоторых строк, вставка будет содержать информацию о том, какая таблица обновляется, какой столбец обновляется, какой запрос выполняется и т. Д. c ..
И я написал что-то вроде this:
DO $$
DECLARE _new_product_id bigint := 1;
_update_by_product_id bigint:= 2;
-- BEGIN TRANSACTION
BEGIN
DECLARE product_sql_query text := 'UPDATE products SET product_id =' + _new_product_id + 'WHERE product_id =' + _update_by_product_id + ';'
INSERT INTO products_audit (ordinal_number, table_name, column_name, action_applied, query_executed, value_before_update, value_after_update, created_date )
VALUES (1, 'products', 'product_id', 'UPDATE', users_query, 1, 1, NOW());
-- END TRANSACTION
COMMIT;
END;
$$
Но я получаю синтаксическую ошибку, которая говорит:
ОШИБКА: синтаксическая ошибка в или около "INSERT" ЛИНИЯ 9: INSERT INTO products_audit (ordinal_number, таблица ...
Что здесь не так, я думаю, что значение product_sql_query неверно?