异常处理,错误记录信息需要存放在不同的table on postgresql

Exception handling, error record info needs to be stored in a different table on postgresql

BEGIN
INSERT INTO main (name, created) VALUES (i_name, CURRENT_TIMESTAMP
AT TIME ZONE 'GMT');
EXCEPTION WHEN UNIQUE_VIOLATION THEN
--    RETURN 'error: already exists';
exec 'INSERT INTO error_main (name, error) select (name, 
''UNIQUE_VIOLATION'') from main'; 
END;

如果可以存储已知错误的记录并且特定的异常处理已经完成。并将此列信息存储在不同的 table.

你不需要动态的 SQL,试试简单的 INSERT:

BEGIN
    INSERT INTO main (name, created) 
    VALUES (i_name, CURRENT_TIMESTAMP AT TIME ZONE 'GMT');
EXCEPTION WHEN UNIQUE_VIOLATION THEN
    INSERT INTO error_main (name, error) 
    SELECT i_name, 'UNIQUE_VIOLATION';
END;