更新列详细信息时 PostgreSQL 序列不工作

PostgreSQL Squence Not Working When Updating Column Details

我创建了一个函数来更新 postgresSQL 中的列 table 使用 Sequence nextval() function.Function 正文如下

BEGIN
    EXECUTE 'CREATE SEQUENCE '|| sequence_name || ' START 1';
    EXECUTE 'UPDATE ' ||selected_table_name|| ' SET record_id = '||nextval(sequence_name);
    RETURN 'SUCCESS';
END;

但是当我如下调用函数时

SELECT staging.update_record_id('staging.test_table','staging.sq_test_table');

当我直接在控制台中使用以下命令时,它会将所有 records.But 的相关列更新为 1,它会使用 increments.The 控制台代码更新所有值,如下所示。

update staging.test_table set record_id = nextval('staging.sq_test_table');

有没有大佬能给个解决办法,不胜感激

我找到了 question.The 函数体的解决方案,应该如下更改

BEGIN
    EXECUTE 'CREATE SEQUENCE '|| sequence_name || ' START 1';
    EXECUTE 'UPDATE ' ||selected_table_name|| ' SET record_id = nextval('''||sequence_name||''')';
    RETURN 'SUCCESS';
END;