全局临时表中数据的持续时间?

发布于 2024-10-17 16:24:15 字数 32 浏览 0 评论 0原文

有人可以告诉我:全局临时表中的数据会存在多长时间?

Can someone please tell me: how long will data be there in a Global Temporary table?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不弃不离 2024-10-24 16:24:15

它们可以是基于会话的(数据在提交后仍然存在,但在断开/重新连接时不存在)。它们也可以是基于事务的(数据在提交后消失)。

这将创建一个基于事务的临时表:

create global temporary table temp_table_transaction on commit delete rows ...

这将创建一个基于会话的临时表:

create global temporary table temp_table_transaction on commit preserve rows ...

They can be SESSION based (data survives a commit but not a disconnect/reconnect). They can also be TRANSACTION based (data disappears after a commit).

This creates a transaction based temp table:

create global temporary table temp_table_transaction on commit delete rows ...

This creates a session based temp table:

create global temporary table temp_table_transaction on commit preserve rows ...
凉月流沐 2024-10-24 16:24:15

当您创建临时表时,您对于数据持久性,有两个选项

  • ON COMMIT DELETE ROWS(默认)和
  • ON COMMIT PRESERVE ROWS

如果您未指定持久性子句,或指定 ON COMMIT DELETE ROWS,表中的数据将是特定于事务的(它将在提交或回滚时被删除)。

如果您指定ON COMMIT PRESERVE ROWS,数据将保留到会话结束。

When you create a temporary table you have two options for data persistence:

  • ON COMMIT DELETE ROWS (default) and
  • ON COMMIT PRESERVE ROWS

If you don't specify a persistence clause, or specify ON COMMIT DELETE ROWS, the data in the table will be transaction-specific (it will be deleted upon commit or rollback).

If you specify ON COMMIT PRESERVE ROWS, the data will stay until the end of your session.

风吹雪碎 2024-10-24 16:24:15

如果表是使用“提交时保留行”创建的,则数据将保留到当前会话结束。如果它是使用“提交时删除行”创建的,那么它将保留到下一次提交或回滚。

If the table was created with "on commit preserve rows" then data will remain until the end of the current session. If it was created with "on commit delete rows" then it will remain until the next commit or rollback.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文