dbeaver创建create临时表之后查询不到问题排查

前提:一共有三张表,表一和表二和表三

需求是要拿表一和表二的查询结果和表三进行关联查询

所以写了sql如下

CREATE TEMPORARY TABLE temp_reports AS

SELECT gr.*,

sd.dept_id,

sd.parent_id

FROM pc_amount_report gr

LEFT JOIN sys_dept sd ON gr.comp_id = sd.dept_id

WHERE gr.report_year = 2022

AND gr.report_month = 5

AND (

sd.dept_id = (

SELECT dept_id

FROM sys_dept

WHERE dept_name = '某某某

)

OR sd.parent_id = (

SELECT dept_id

FROM sys_dept

WHERE dept_name = '某某某'

)

);

SELECT pt.* FROM pc_amount_report_task pt

LEFT JOIN temp_reports tr

ON pt.pc_amount_report_task_id = tr.pc_amount_report_task_id

AND pt.plan_id = tr.plan_id

and pt.approval_company_code=tr.approval_company_code

and pt.approval_company_name=tr.approval_company_name

and pt.report_year=tr.report_year

可是执行完一之后,用select * from 临时表temp_reports ,可以查处来数据,然后在数据库搜索框搜索表名却一直无法搜索出来,所以导致第2段sql无法执行

最后发现竟然是没有建表的权限,也真是无语

如果你和我一样,无法执行sql,可以参考下面的原因进行排查

报错信息 "already exists" 通常意味着你尝试创建的临时表已经存在于数据库中。

解决方法:

  1. 检查表名:确保你输入的临时表名称是唯一的,并且没有与数据库中现有的表名冲突。

  2. 检查会话:如果你在不同的数据库会话中执行创建操作,确保你在正确的会话中查找表。

  3. 清理会话:如果确认表名没有问题,尝试清理当前的数据库会话,然后重新创建临时表。

  4. 权限问题:确认你有足够的权限在数据库中创建临时表。

  5. 语法检查:确认SQL语句语法正确,没有遗漏关键字或错误的语法结构。

如果你确认临时表不存在,但仍然收到错误消息,可以尝试以下步骤:

  • 刷新数据库视图。

  • 重启数据库管理工具(如DBeaver)。

  • 重启数据库服务。

如果这些步骤都不能解决问题,可能需要联系数据库管理员或查看数据库日志以获取更多信息。

相关推荐
ClickHouseDB2 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
m0_639906942 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
时间售卖铺3 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw3 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社4 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙4 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
captain3765 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你02146 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川6 小时前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化
数据库小组6 小时前
NineData 实战教程:MySQL 5.5 数据迁移同步到 MySQL 8.0(跨版本升级)
数据库·mysql·mysql优化·数据库开发·数据库迁移·版本升级·数据复制