2013-03-12 2 views
2

저는이 문제를 오랫동안 연구 해왔지만 도움이되는 결과를 찾을 수 없었습니다.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' */ 

이것은 또한 어제 일어난,하지만 난 그 문제를 다루는 많은 시간이 없었로, 내가 다른 이름하지만 동일한 구조로 새 테이블을 생성 모든 데이터를 복사 한 다음 두 테이블의 이름을 바꾸면 다시 작동합니다. 문제가 다시 돌아온 지 약 2 시간 전까지 만요. 12 시간마다 테이블을 대처하는 것은 실제로 옵션이 아닙니다.

사본을 작성하는 내가 사용 :

CREATE TABLE jobs_new LIKE jobs; INSERT jobs_new SELECT * FROM jobs; 

후 앞서 언급 한 삽입이 작동합니다.

도움이 될 것입니다.

편집 : 그것은 내가 서버 버전을 실행하고있어 어떤 차이가 있습니다 경우 : 5.5.28-0ubuntu0.12.04.2 로그 (우분투) 우분투 서버 12.04 LTS 64 비트에 당신이 가지고있는 것처럼

+0

실행하면 어떻게됩니까? INSERT INTO 작업 SET clip_description = 'test'? –

+0

INSERT INTO 작업 SET clip_description = '테스트'; /* SQL 오류 (1054) : '필드 목록'의 알 수없는 열 'clip_description'*/ – madisx

+2

관련있을 수 있습니다 : http://stackoverflow.com/questions/12862081/error-1054-unknown-coloumn-in-insert -clause? rq = 1 –

답변

2

같습니다 테이블과 관련된 다른 제약은 clip_description 열에 따라 트리거 또는 계산 된 열이 될 수 있습니다. 안 그래?

이 표에서 종속성과 트리거를 확인하십시오.

+1

예, 이전 게시물에 의견을 추가했습니다.이 정확한 열을 사용하는 동료 트리거를 발견했습니다. SET NEW.clip_description = REPLACE (clip_description, 'Old', 'New'); 그러나 SET NEW 일 필요가있었습니다 .clip_description = REPLACE (NEW.clip_description, 'Old', 'New'); – madisx