1

在postgresql中,如果一次执行多个SQL语句(在pgadmin中,选择所有这些语句并单击“执行”按钮,如图所示), 在此处输入图像描述
服务器将等到最后一条语句执行完毕后,前一条语句才会生效。执行这些语句时,如果我运行,SELECT * FROM tablename1则会出现“关系不存在”错误。

语句执行后是否有任何方法生效。注意:每条 CREATE 语句如果单独执行,则需要很短的时间。SELECT 语句需要很长时间。

4

1 回答 1

3

我假设,当你在 pgadmin 中选择一堆语句并点击“执行”时,它们都在一个事务中运行。这意味着,在事务提交之前,其他并发会话将看不到事务的结果(或者如果事务失败,则根本不可见)。

尝试COMMIT;在每个CREATE TABLE或最后一个之后添加显式。

您可能还想阅读有关事务隔离的内容。

于 2012-06-21T09:10:22.413 回答