将我的一个MySQL 5.1 MyISAM表从test_tablename
重命名为tablename
后,我发现如果我尝试执行INSERT(或REPLACE)查询,我会收到以下消息:
INSERT INTO tablename (...) VALUES (...)
1146:表'dbname.test_tablename'不存在
我已经对我的数据库抽象代码进行了三重检查,并通过直接在服务器上运行查询来验证这一点。
根据MySQL服务器,CREATE TABLE
语法为tablename
,正如预期的那样,当我运行SHOW TABLES
时,它会按预期列出tablename
。
有没有理由这样做?
更重要的是,是否有更简单的方法来解决此问题,而不是转储,删除,重新创建和重新加载表?
答案 0 :(得分:1)
如果您将test_tablename
重命名为tablename
,那么以下情况不应该成立吗?
1146: Table 'dbname.test_tablename' doesn't exist
请务必在查询中使用tablename
,而不是test_tablename
。
答案 1 :(得分:1)
这很可能是由相应未更新的触发器引起的。
答案 2 :(得分:0)
您确定没有插入仍然引用test_tablename
的视图吗?