3

私はかなり長い間この問題を調査してきましたが、役立つ結果を見つけることができませんでした。

私はテーブルを持っています:

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-log(Ubuntu)ubuntuサーバー12.04 LTS 64ビット

4

1 に答える 1

3

テーブルに関連する他の制約があるようです。clip_description 列に応じて、トリガーまたは計算列である可能性があります。そうではありませんか?

この表で依存関係とトリガーを確認してください。

于 2013-03-12T09:56:47.987 に答える