各務 洋
kagam****@outwa*****
2015年 7月 1日 (水) 17:01:58 JST
お世話になります。 話題を振っておいてなんですが、実はシステムからは Mroonga に UPDATE 文 を発行していない各務です。 手元の仮想環境で、レプリケーションが切断されなくなるのを確認しました。 ありがとうございます。 yoku0825 さんの > 俺がやるとしたらsql_modeからSTRICT_TRANS_TABLESを抜いてしまいます。 これでいきます!これから検証環境にあてていきます。 >> data truncated for primary key column: <id> >> って出て、Update 文が出来ない時があるのですが、IGNORE 付けると出来るの >> です。 >> id は Update 対象じゃないんですけどね……。 > > ソースを確認するとプライマリーキーなフィールドが書き込み対象 > に入っているときにそれがでそうです。UPDATEのSETにプライマリー > キーを指定しているわけ、ではないですよねぇ、さすがに。 はい。ないのです。構造としては、 CREATE TABLE `tbl_test_pat_0005` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `t1_date` TIMESTAMP NOT NULL DEFAULT current_timestamp, `t2_date` TIMESTAMP NOT NULL DEFAULT '0000-00-00', `a_id` BIGINT(20) NOT NULL Default 0, `t_text` LONGTEXT, PRIMARY KEY (`id`), UNIQUE KEY `a_id` (`a_id`), FULLTEXT INDEX `t_text` (`t_text` ) COMMENT 'normalizer "NormalizerMySQLUnicodeCIExceptKanaCIKanaWithVoicedSoundMark"' ) ENGINE=mroonga DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ; これに、 UPDATE tbl_test_pat_0005 SET t2_date = '2015-07-01 00:00:00' WHERE a_id IN (1, 2, 3……) のような UPDATE 文 で、WHERE は サブクエリーだったり、別のフィールドだ ったりしますが、いずれにせよ対象は複数件ある状態です。 IGNORE つけて UPDATE すると、大抵複数の Warning がでますが、値は期待通 り書き換わっています。 1度 UPDATE が完了すると、同じSQLを再実行して対象件数が同じでもエラーが でないのを記憶しています。 ですので、なかなか再現手順が作れない状態なのです。 これは想像ですが、「値」の問題ではないような気がしています。 P.S UPDATE 文 は手動でのみ実行しますので、滅多にやらないのです。 ---- 各務 kagam****@outwa*****