我一直在研究這個問題很長一段時間,但一直未能找到任何有用的結果。Mysql在現有列上的未知列(僅插入)
我有一個表:
CREATE TABLE `jobs` (
`jb_id` MEDIUMINT(7) UNSIGNED NOT NULL AUTO_INCREMENT,
`wo_id` MEDIUMINT(7) UNSIGNED NOT NULL,
`file_name` VARCHAR(140) NOT NULL COLLATE 'latin1_bin',
`jb_status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
`descr` TEXT NULL COLLATE 'latin1_bin',
`syncronized` TINYINT(2) UNSIGNED NOT NULL,
`failedcnt` TINYINT(3) UNSIGNED NOT NULL,
`clip_title` TINYTEXT NULL COLLATE 'latin1_bin',
`clip_description` TEXT NULL COLLATE 'latin1_bin',
`clip_tags` TINYTEXT NULL COLLATE 'latin1_bin',
PRIMARY KEY (`jb_id`),
INDEX `woid` (`wo_id`),
INDEX `job_stat` (`jb_status`),
INDEX `synced` (`syncronized`),
INDEX `failedcnt` (`failedcnt`),
INDEX `file_name` (`file_name`)
)
COLLATE='latin1_bin'
ENGINE=MyISAM;
當我運行SELECT或UPDATE命令,一切工作正常。
select jobs.clip_description from jobs Limit 1;
/* 0 rows affected, 1 rows found. Duration for 1 query: 0.768 sec. */
UPDATE `jobs` SET `clip_description`='test' WHERE `jb_id`=2 LIMIT 1;
但是,當我嘗試運行
INSERT INTO `jobs` (`clip_description`) VALUES ('test');
/* SQL Error (1054): Unknown column 'clip_description' in 'field list' */
這也在昨天發生的事情,但我沒有太多的時間來處理這個問題的話,我創建新表使用不同的名稱,但相同的結構,複製所有數據,然後重命名這兩個表,然後再次運行。直到大約兩個小時前,問題纔回來。每12小時開始處理一次表並不是真正的選擇。
對於創建副本,我用:
CREATE TABLE jobs_new LIKE jobs; INSERT jobs_new SELECT * FROM jobs;
之後,前面提到的插入會工作。
任何幫助將不勝感激。
編輯: 如果它使我運行 Server版本有什麼區別:在Ubuntu服務器12.04 LTS 64位5.5.28-0ubuntu0.12.04.2日誌(Ubuntu的)
當您運行時會發生什麼 INSERT INTO作業SET clip_description ='test'? – 2013-03-12 09:44:27
INSERT INTO作業SET clip_description ='test'; /* SQL錯誤(1054):'字段列表'中的未知列'clip_description'*/ – madisx 2013-03-12 09:45:55
這可能是相關的:http://stackoverflow.com/questions/12862081/error-1054-unknown-coloumn-in-insert - 條款?rq = 1 – 2013-03-12 09:47:02