Мне было интересно, может ли кто-нибудь мне помочь.
У меня странное поведение при выполнении команды ALTER. Команда поступает из MySQL Workbench sync, и она у меня есть таблица с полями:
`id` int(11) NOT NULL AUTO_INCREMENT ,
`text` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
`updated` datetime NULL DEFAULT NULL ,
`remote_addr` varchar(45) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL ,
`http_user_agent` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL ,
`user_id` int(11) NULL DEFAULT NULL ,
`category` varchar(20) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL ,
`created` datetime NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
И я хочу выполнить команду ALTER:
ALTER TABLE `logs`
ADD COLUMN `updated` DATETIME NULL DEFAULT NULL AFTER `created`,
CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT NULL AFTER `category`
Я получаю в ответ:
Unknown column 'created' in 'logs'
Но
ALTER TABLE `logs`
ADD COLUMN `updated` DATETIME NULL DEFAULT NULL AFTER `created`
работает сам по себе, и:
ALTER TABLE `logs`
CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT NULL AFTER `category`
также работает сам по себе .
Я не понимаю, почему, когда оба они объединены в один запрос, он не работает и говорит, что «created» не существует. Я знаю, что он определенно существует.
Обратите внимание, что меня это не волнует. Что касается столбца изменений для «created», он генерируется MWB при сравнении и подготовке к синхронизации. Но мне просто интересно, почему оба действия не могут быть помещены в один запрос.
Я использую MySQL 5.5.8
Обновление
На самом деле я могу делать несколько предложений, нормально. Я отлично делал это с другими таблицами.
Я забыл об этом упомянуть. Но когда я удаляю часть AFTER, это работает.
Так что это не работает. :
ALTER TABLE `logs`
ADD COLUMN `updated` DATETIME NULL DEFAULT NULL AFTER `created`,
CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT NULL AFTER `category`
А вот это:
ALTER TABLE `logs`
ADD COLUMN `updated` DATETIME NULL DEFAULT NULL,
CHANGE COLUMN `created` `created` DATETIME NULL DEFAULT NULL AFTER `category`