【发布时间】:2011-05-30 12:28:44
【问题描述】:
将我的一个 MySQL 5.1 MyISAM 表从 test_tablename 重命名为 tablename 后,我发现如果我尝试执行 INSERT(或 REPLACE)查询,我会收到以下消息:
INSERT INTO tablename (...) VALUES (...)
1146: 表 'dbname.test_tablename' 不存在
我已经三次检查了我的数据库抽象代码,并通过直接在服务器上运行查询来验证这一点。
根据 MySQL 服务器,CREATE TABLE 语法是 tablename,正如预期的那样,当我运行 SHOW TABLES 时,它会按预期列出 tablename。
发生这种情况有什么原因吗?
更重要的是,有没有比转储、删除、重新创建和重新加载表更简单的方法来解决这个问题?
【问题讨论】:
-
昨天我的左臂被砍断了,今天我发现我左边的东西抓不住了。这是为什么呢?
-
我假设您的意思是显式插入到表
tablename,但错误消息仍然引用旧表名? -
是的,对不起。我已更新问题以澄清我正在执行的查询。
-
您是否有可能在提到的表上有任何触发器?
-
@jweyrich:是的,就是这样。如果你这样回答,我会接受的。我不敢相信我错过了!
标签: mysql sql insert mysql-error-1146