2

将我的 MySQL 5.1 MyISAM 表之一从 重命名为 后test_tablenametablename我发现如果我尝试执行 INSERT(或 REPLACE)查询,我会收到以下消息:

INSERT INTO tablename (...) VALUES (...)

1146: 表 'dbname.test_tablename' 不存在

我已经三重检查了我的数据库抽象代码,并通过直接在服务器上运行查询来验证这一点。

根据 MySQL 服务器,CREATE TABLE语法是tablename,正如预期的那样,当我运行 时SHOW TABLES,它按预期列出tablename

发生这种情况有什么原因吗?

更重要的是,有没有比转储、删除、重新创建和重新加载表更简单的方法来解决这个问题?

4

3 回答 3

1

如果您重命名test_tablenametablename,以下内容不应该是真的吗?

1146: Table 'dbname.test_tablename' doesn't exist

请务必tablename在您的查询中使用,而不是test_tablename.

于 2010-12-24T20:42:27.710 回答
1

这很可能是由未相应更新的触发器引起的。

于 2010-12-25T05:17:50.197 回答
0

你确定你没有插入到仍然引用的视图中test_tablename吗?

于 2010-12-24T20:49:54.303 回答