Переименованная таблица MySQL не переименована для запросов INSERT? - PullRequest
2 голосов
/ 24 декабря 2010

После переименования одной из моих таблиц MyISAM MySQL 5.1 из test_tablename в tablename я обнаружил, что если я пытаюсь выполнить запрос INSERT (или REPLACE), я получаю следующее сообщение:

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

1146: таблица 'dbname.test_tablename' не существует

Я трижды проверил код абстракции базы данных и проверил это, выполнив запрос непосредственно на сервере.

В соответствии с сервером MySQL, синтаксис CREATE TABLE равен tablename, как и ожидалось, и когда я запускаю SHOW TABLES, он отображает tablename, как и ожидалось.

Есть ли какая-либо причиначтобы это произошло?

Что более важно, есть ли более простой способ исправить это, чем сброс, удаление, повторное создание и перезагрузка таблицы?

Ответы [ 3 ]

1 голос
/ 25 декабря 2010

Вероятно, это вызвано триггером, который не был соответственно обновлен.

1 голос
/ 24 декабря 2010

Если вы переименовали test_tablename в tablename, не должно ли быть верно следующее:

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

Обязательно используйте tablename в своих запросах, а не test_tablename.

0 голосов
/ 24 декабря 2010

Вы уверены, что не вставляете в представление, которое все еще ссылается на test_tablename?

...