Ошибка неизвестного столбца MySQL при использовании ALTER, не понимаю поведения

Мне было интересно, может ли кто-нибудь мне помочь.

У меня странное поведение при выполнении команды 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`
5
задан dandan78 8 June 2011 в 12:01
поделиться