[groonga-dev,03330] Re: Mroonga 5.03 ストレージモードで MySQL 5.6 のレプリケーションが切断される(解決)

Back to archive index

各務 洋 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*****




groonga-dev メーリングリストの案内
Back to archive index