python - 如何确定是否创建了 postgres 临时表?
问题描述
运行查询创建临时表(如果它不存在)时,我如何确定是否实际创建了新表?
例如,如果我创建一个临时表,如果创建了CREATE TEMP TABLE IF NOT EXISTS name
新表,我可以让查询返回一些东西吗?
在我的特定情况下,在创建临时表后,我运行另一个查询以将一些数据复制到其中,因此我需要确保仅在重新创建临时表时才复制数据(例如,如果由于某些原因删除了表瞬间连接丢失或其他东西)。我正在使用 psycopg2。
解决方案
您应该在执行查询“CREATE TABLE IF NOT EXISTS”之前测试您的表是否存在。例如这个查询:
SELECT 1
FROM information_schema.tables
WHERE table_schema='YourShema' AND table_name='TableName';
如果该表之前不存在,则表示她是在之后创建的!;)
另一种解决方案是不使用“IF NOT EXISTS”指令并在表已存在时捕获异常。
推荐阅读
- python - 我可以为按钮创建随机 x 和 y 坐标 - Tkinter Python
- cookies - sg-cookie-optin 扩展抛出没有名为 SGalinski\SgCookieOptin\Hook\LicenceCheckHook 的类
- javascript - Javascript中的密码验证
- openedge - 为什么我可以在浏览器中对列进行排序?
- jenkins - Jenkins - shell 脚本 - 发现参数格式不正确
- three.js - 如何将 TransformControls 附加到 Three.JS 中自己的网格组中心?
- shell - 源文件移动到 unix 中的存档文件夹
- c# - 卡巴斯基将 C# 应用程序检测为特洛伊木马病毒 (VHO:Trojan.MSIL.Convagent.gen)
- python - 使用 webbrowser 而不是 Selenium
- c++ - 具有先前模板参数类型的自动返回类型实参的函数类型的模板参数