2015-05-25 6 views
0

Я продолжаю получать повторяющуюся ошибку первичного ключа при попытке вставить в мою таблицу Mroonga на MariaDB 10.0.19. Кто-нибудь знает, что может быть причиной?Mroonga on Mariadb Первичный ключ Ошибка ввода

SQL:

insert into tbl_mroonga select pk_id, keyword from tbl_inno; 

Создать таблицу:

create table tbl_mroonga (
    'PK_ID' int(11) not null default 0, 
    'Keyword' varchar(191) null default null, 
    primary key (`pk_id`), 
    fulltext index ('keyword')) Engine=MROONGA; 

    create table tbl_inno (
    'PK_ID' int(11) not null default 0, 
    'Keyword' varchar(191) null default null, 
    primary key (`pk_id`), 
    fulltext index ('keyword')) Engine=INNODB; 

Я вставив около 3.5million строки из tbl_inno в tbl_mroonga и она не на уровне около 400K строк. Я пробовал его с помощью «select different» и «group by pk_id», и все равно он терпит неудачу.

Любая помощь была бы принята с благодарностью!

спасибо.

+0

Эта ссылка может помочь: https://mariadb.com/kb/ru/mariadb/auto_increment/ – Michas

+0

'Первичный ключ' отличается/уникален,' select different' & 'group by pk_id' не будет иметь никакого эффекта. 1 - Попробуйте создать новую таблицу с помощью 'Engine = MROONGA'. 2 - или посмотрите, помогает ли фразу 'ON DUPLICATE KEY UPDATE tbl_mroonga.keyword = tbl_inno.keyword'. PS: У меня нет опыта с MROONGA лично. – SparKot

+0

Есть ли что-то важное в 'mysqld.err'? –

ответ

0

Напишите цикл, который копирует по 10K строк за раз. Используйте что-то вроде (например, 13-й порции):

INSERT INTO tbl_mroonga 
SELECT pk_id, keyword 
    FROM tbl_inno 
    WHERE pk_id > 120000 
     AND pk_id <= 130000 

и COMMIT после каждой порции.

Смежные вопросы