异常处理,错误记录信息需要存放在不同的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;
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;