У меня есть и старая база данных MySQL, где мне нужно вставлять новые столбцы в таблицы (для поддержки новых частей интерфейса). Но некоторые из старых частей используют команды SQL, которые зависят от количества столбцов и порядка вместо их имен. например:Какие команды MySQL могут использовать порядок столбцов вместо имен
INSERT INTO `data` VALUES (null /*auto-id*/, "name", "description", ...)
При добавлении новых столбцов в эту таблицу, я получаю the error:
1136 - Количество столбцов не совпадает с количеством значений в строке 1
Сейчас я узнать о INSERT, который необходимо изменить на:
INSERT INTO `data` (`name`, `desc`, ...) VALUES ("name", "description", ...)
Вопрос: есть ли другие команды, которые могут использовать аналогичный синтаксис, который зависит от порядка или количества столбцов вместо их имен? Мне нужно обновить все старые команды SQL до обновления БД и использовать метод trial & error будет очень длинным.
SELECT не являются проблемой, поскольку интерфейс использует ассоциативное отображение и правильно использует их имена везде, поэтому новые столбцы будут просто игнорироваться. Также я уверен, что нет команд, которые изменяют структуру БД (например, ALTER TABLE).
Не отвечающий на ваш вопрос, но дополнительные столбцы могут непреднамеренно влиять на запросы, используя NATURAL JOIN. –
Или запросы с использованием профсоюзов. – Shadow
Или существующие операторы SELECT, которые используют неквалифицированные ссылки столбцов, добавление столбцов может вызвать появление новых ошибок «неоднозначного столбца». – spencer7593