前提:一共有三张表,表一和表二和表三
需求是要拿表一和表二的查询结果和表三进行关联查询
所以写了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" 通常意味着你尝试创建的临时表已经存在于数据库中。
解决方法:
- 检查表名:确保你输入的临时表名称是唯一的,并且没有与数据库中现有的表名冲突。
- 检查会话:如果你在不同的数据库会话中执行创建操作,确保你在正确的会话中查找表。
- 清理会话:如果确认表名没有问题,尝试清理当前的数据库会话,然后重新创建临时表。
- 权限问题:确认你有足够的权限在数据库中创建临时表。
- 语法检查:确认SQL语句语法正确,没有遗漏关键字或错误的语法结构。
如果你确认临时表不存在,但仍然收到错误消息,可以尝试以下步骤:
- 刷新数据库视图。
- 重启数据库管理工具(如DBeaver)。
- 重启数据库服务。
如果这些步骤都不能解决问题,可能需要联系数据库管理员或查看数据库日志以获取更多信息。
到此这篇关于dbeaver创建create临时表之后查询不到问题排查的文章就介绍到这了,更多相关dbeaver创建create临时表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
来源:https://www.jb51.net/database/334144gow.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|