重命名MySQL表未重命名为INSERT查询?

时间:2010-12-24 20:38:36

标签: mysql sql insert mysql-error-1146

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

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

1146:表'dbname.test_tablename'不存在

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

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

有没有理由这样做?

更重要的是,是否有更简单的方法来解决此问题,而不是转储,删除,重新创建和重新加载表?

3 个答案:

答案 0 :(得分:1)

如果您将test_tablename重命名为tablename,那么以下情况不应该成立吗?

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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