Ошибка неизвестного столбца 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`
-1 21 --- 1873657- git rebase после предыдущего git merge У меня следующая ситуация: я создал клон (Y) из основного репозитория (X), потому что над Y работало много людей, которых мы не сделали » т делать какие-либо перестановки, а только слияния. Когда мы хотим доставить (протолкнуть) Y в ...

У меня следующая ситуация:

  • Я создал клон (Y) из основного репозитория (X), потому что их было много люди, работающие над Y, мы не делали rebase , а только merge s. Когда мы хотим доставить ( push ) Y в X, мы хотели бы выполнить rebase , чтобы все было красиво и чисто

Проблема в том, что при выполнении rebase нас просят выполнить все слияния, которые мы уже сделали на предыдущих шагах слияние . Есть ли решение этой проблемы, кроме того, которое означает повторное слияние?

Я ожидал, что это будет довольно просто, поскольку мы уже разрешили конфликтующие слияния.

72
задан рüффп 16 November 2016 в 10:24
поделиться