【问题标题】:Multiply statements run at one time in postgresql在 postgresql 中一次运行乘法语句
【发布时间】:2012-06-21 08:38:49
【问题描述】:

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

有没有办法让语句执行后生效。 注意:每条 CREATE 语句如果单独执行,则需要很短的时间。 SELECT 语句需要很长时间。

【问题讨论】:

  • «如果最后一个 SELECT 语句需要较长时间运行,之前的 CREATE 操作将无法成功创建表。» ——你有这方面的证据吗?还有你所说的“一次顺序”的意思——正如我所见,它要么是并行的,要么是按顺序的。
  • @vyegorov 我更新了我的问题,很抱歉模棱两可。

标签: sql postgresql pgadmin


【解决方案1】:

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

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

您可能还想了解transaction isolation

【讨论】:

    猜你喜欢
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    相关资源
    最近更新 更多