[groonga-dev,03177] mroongaで同一レコードの登録、削除、登録を行うとユニークキー重複エラー発生

Back to archive index

yuya sako ysgon****@gmail*****
2015年 4月 20日 (月) 11:57:15 JST


※先日、当MLに投稿いたしましたが、過去ログを確認しましたところ、
4/19時点で投稿内容が残ってりませんでした為、念のため再投稿させていただきます。

mroongaを使い始めた者なのですが、下記事象が発生いたしました。
使い方に問題があるものなのかどうか等、ご教示頂けますと助かります。

お手数をおかけいたしますが、よろしくお願いいたします。

[事象]
複数レコードをINSERT
↓
INSERTしたレコードを全てDELETE
↓
再度同じレコードをINSERT

を行うと、そのうち1件で下記エラーが発生いたします。

ERROR 1062 (23000): Duplicate entry 'カラムの値' for key 'uid'

※再現手順を下記に記載いたしました。

[使用環境]
# uname -a
Linux localhost1.local 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC
2015 x86_64 x86_64 x86_64 GNU/Linux

# mysql --version
mysql  Ver 14.14 Distrib 5.6.23, for Linux (x86_64) using  EditLine wrapper

mysql> show variables like '%mroonga%';
+----------------------------------------+---------------+
| Variable_name                          | Value         |
+----------------------------------------+---------------+
| mroonga_action_on_fulltext_query_error | ERROR_AND_LOG |
| mroonga_boolean_mode_syntax_flags      | DEFAULT       |
| mroonga_database_path_prefix           |               |
| mroonga_default_parser                 | TokenBigram   |
| mroonga_default_wrapper_engine         |               |
| mroonga_dry_write                      | OFF           |
| mroonga_enable_optimization            | ON            |
| mroonga_libgroonga_support_lz4         | OFF           |
| mroonga_libgroonga_support_zlib        | ON            |
| mroonga_libgroonga_version             | 5.0.2         |
| mroonga_lock_timeout                   | 10000000      |
| mroonga_log_file                       | groonga.log   |
| mroonga_log_level                      | NOTICE        |
| mroonga_match_escalation_threshold     | 0             |
| mroonga_vector_column_delimiter        |               |
| mroonga_version                        | 5.01          |
+----------------------------------------+---------------+

[再現手順]
(1)テーブルの作成

CREATE TABLE `uk_test` (
  id int(10) unsigned not null,
  uid varchar(150) not null,
  data text not null,
  primary key (id),
  unique key uid (uid)
) ENGINE=mroonga DEFAULT CHARSET=utf8;

(2)データをINSERT
INSERT INTO uk_test (id,uid, data) VALUES (1,'uid2','');
INSERT INTO uk_test (id,uid, data) VALUES (2,'uid1','');
INSERT INTO uk_test (id,uid, data) VALUES (3,'uid3','');
INSERT INTO uk_test (id,uid, data) VALUES (4,'uid4','');

(3)データをDELETE
DELETE FROM uk_test WHERE `id`='1';
DELETE FROM uk_test WHERE `id`='2';
DELETE FROM uk_test WHERE `id`='3';
DELETE FROM uk_test WHERE `id`='4';

(4)上記(2)と同じデータをINSERT
INSERT INTO uk_test (id,uid, data) VALUES (1,'uid2','');
INSERT INTO uk_test (id,uid, data) VALUES (2,'uid1','');
INSERT INTO uk_test (id,uid, data) VALUES (3,'uid3','');
INSERT INTO uk_test (id,uid, data) VALUES (4,'uid4','');

[補足-1]
上記(2)、(4)で実行するINSER文を下記にしますと、事象が再現しなくなります。
INSERT INTO uk_test (id,uid, data) VALUES (1,'uid1','');
INSERT INTO uk_test (id,uid, data) VALUES (2,'uid2','');
INSERT INTO uk_test (id,uid, data) VALUES (3,'uid3','');
INSERT INTO uk_test (id,uid, data) VALUES (4,'uid4','');

[補足-2]
上記(2)、(4)で実行するINSER文は下記3件でも、事象が再現いたします。
INSERT INTO uk_test (id,uid, data) VALUES (1,'uid2','');
INSERT INTO uk_test (id,uid, data) VALUES (2,'uid1','');
INSERT INTO uk_test (id,uid, data) VALUES (3,'uid3','');

以上よろしくお願いいたします。

-------------------------------------------------
酒匂祐也
ysgon****@gmail*****
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
다운로드 



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