【发布时间】:2012-09-17 16:53:32
【问题描述】:
当我在 begin; 和 commit; 事务中有两个 INSERT SQL 语句(见下文)时,RETURNING * 不会返回任何内容,但如果我取出 begin; 和 commit; @ 987654327@ 确实返回插入的记录。
如何让RETURNING * 在事务中工作?
BEGIN;
INSERT INTO gis_field_configuration
(level_unique_name, level_name_caption, use_for_charts, use_as_displayby,
displayby_label, data_type, level_help_text)
VALUES (
'[john].[john]',
'john',
'false',
'false',
'',
'text',
'help text'
);
INSERT INTO gis_field_configuration_bycube
(cube, level_unique_name)
VALUES (
'Instruments',
'[john].[john]'
) RETURNING *;
COMMIT;
【问题讨论】:
-
你是如何运行查询的?如果您分批发送它们,您将不会收到任何回复,但是如果您像往常一样发送它们,则应该检查实际查询的结果,并在获得结果后提交... ?
-
您的 RETURNING 语句实际上需要什么?序列号列的值?如果是这样,您可以简化,只需
select curval('the_relevant_sequence')
标签: sql postgresql transactions sql-insert