我在想如果有人能幫助我。使用ALTER時MySQL未知列錯誤,不明白行爲
我有一個奇怪的行爲,同時發出ALTER命令。該命令來自MySQL Workbench同步,並且失敗。我有一個字段的表:
`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`
也可以自行工作。
我不明白爲什麼當兩個在一個查詢組合時,它不起作用,並說'創建'不存在。我知道它肯定存在。
請注意,我並不擔心'創建'的更改列,它是由MWB在比較和準備同步時生成的。但只是想知道爲什麼這兩個行爲不能被置於一個查詢。
我使用MySQL 5.5.8
更新
實際上,我可以做多的條款沒問題。我一直在其他桌子上做得很好。
我忘了提這個。但是,當我刪除後部分它的作品。
所以這不起作用:
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`