“临时表报错”本身太笼统了,我需要先帮你定位常见原因。下面按 MySQL / SQL Server / Oracle 常见场景给你一个排查清单,你对照一下是哪一类。
报错类似:
Table 'tmp_xxx' already existsThere is already an object named '#tmp' in the database原因
DROP 就 CREATE解决
-- MySQL
DROP TEMPORARY TABLE IF EXISTS tmp_xxx;
CREATE TEMPORARY TABLE tmp_xxx (...);
-- SQL Server
IF OBJECT_ID('tempdb..#tmp') IS NOT NULL
DROP TABLE #tmp;
报错类似:
Table 'tmp_xxx' doesn't existInvalid object name '#tmp'原因
注意
TEMPORARY TABLE 仅当前连接可见# 仅当前会话,## 才是全局报错类似:
Column count doesn't matchImplicit conversion error常见场景
INSERT INTO tmp SELECT ... 时列数或类型不匹配现象
Unknown table原因
SHOW TABLES 看到# 局部,## 全局# 表,调用方看不到ON COMMIT DELETE ROWS 配置不对请把以下信息发我:
例如:
MySQL 8.0,报错
Table 'tmp_user' already exists,存储过程里创建的临时表
我可以直接帮你改到不报错 ✅
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。