фатальная ошибка, повторяющаяся запись ‘1’ для ключа ‘PRIMARY’

Я пытаюсь загрузить файл базы данных на свой сервер, но получаю следующее сообщение об ошибке при импорте. Я искал другие подобные проблемы, но не могу решить, как это исправить.

Это сообщение, которое я получаю:

Ошибка в строке 61: (2, 1, 2, 0, «U», 1, «Site»);

Запрос:

INSERT INTO `mage_S3CUr3_admin_role` (`role_id`, `parent_id`, `tree_level`, `sort_order`, `role_type`, `user_id`, `role_name`) VALUES
(1, 0, 1, 1, 'G', 0, 'Administrators'),
(2, 1, 2, 0, 'U', 1, 'Site')

MySQL: повторяющаяся запись ‘1’ для ключа ‘PRIMARY’

Это структура таблицы, я надеюсь, что кто-нибудь поможет мне с этим и даст хороший код.

-- Tabelstructuur voor tabel `mage_S3CUr3_admin_role`
--

CREATE TABLE IF NOT EXISTS `mage_S3CUr3_admin_role` (
`role_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Role ID',
`parent_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Parent Role ID',
`tree_level` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Role Tree Level',
`sort_order` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Role Sort Order',
`role_type` varchar(1) NOT NULL DEFAULT '0' COMMENT 'Role Type',
`user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'User ID',
`role_name` varchar(50) NOT NULL DEFAULT '' COMMENT 'Role Name',
PRIMARY KEY (`role_id`),
KEY `IDX_OZSS_ADMIN_ROLE_PARENT_ID_SORT_ORDER` (`parent_id`,`sort_order`),
KEY `IDX_OZSS_ADMIN_ROLE_TREE_LEVEL` (`tree_level`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='Admin Role Table' AUTO_INCREMENT=3 ;

--
-- Gegevens worden uitgevoerd voor tabel `mage_S3CUr3_admin_role`
--

РЕДАКТИРОВАТЬ

Я понял

Error at the line 81: ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Admin Rule Table' AUTO_INCREMENT=2 ;

Запрос:

INSERT INTO `mage_S3CUr3_admin_role`
(`parent_id`, `tree_level`, `sort_order`, `role_type`, `user_id`, `role_name`) VALUES
(0, 1, 1, 'G', 0, 'Administrators'),
(1, 2, 0, 'U', 1, 'Site')
--
--
CREATE TABLE IF NOT EXISTS `mage_S3CUr3_admin_rule` (
`rule_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Rule ID',
`role_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Role ID',
`resource_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'Resource ID',
`privileges` varchar(20) DEFAULT NULL COMMENT 'Privileges',
`assert_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Assert ID',
`role_type` varchar(1) DEFAULT NULL COMMENT 'Role Type',
`permission` varchar(10) DEFAULT NULL COMMENT 'Permission',
PRIMARY KEY (`rule_id`),
KEY `IDX_OZSS_ADMIN_RULE_RESOURCE_ID_ROLE_ID` (`resource_id`,`role_id`),
KEY `IDX_OZSS_ADMIN_RULE_ROLE_ID_RESOURCE_ID` (`role_id`,`resource_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Admin Rule Table' AUTO_INCREMENT=2

MySQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE IF NOT EXISTS `mage_S3CUr3_admin_rule` ( `rule_id` int(10) unsign' at line 9

0

Решение

Не указывайте role_id — это поле AUTO_INCREMENT.

MySQL предоставит вам уникальный role_id.

Вы можете использовать LAST_INSERT_ID (), чтобы получить значение, вставленное в role_id с помощью AUTO_INCREMENT. Вы можете использовать это для вашего parent_id — при условии, что вы хотите получить значение role_id предыдущей вставки в качестве parent_id для следующей строки. Вам нужно будет разделить ваши вкладыши.

Посмотрите на рабочий пример здесь: http://sqlfiddle.com/#!2/9755b/1/0

INSERT INTO `mage_S3CUr3_admin_role`
(`parent_id`, `tree_level`, `sort_order`, `role_type`, `user_id`, `role_name`)
VALUES
(LAST_INSERT_ID(), 1, 1, 'G', 0, 'Administrators');

INSERT INTO `mage_S3CUr3_admin_role`
(`parent_id`, `tree_level`, `sort_order`, `role_type`, `user_id`, `role_name`)
VALUES
(LAST_INSERT_ID(), 2, 0, 'U', 1, 'Site');

Посмотрите на рабочий пример здесь: http://sqlfiddle.com/#!2/9755b/1/0

1

Другие решения

Я все еще получаю ошибку 🙁

Ошибка в строке 94: (1, 1, «все», NULL, 0, «G», «разрешить»);

Запрос: —

ВСТАВИТЬ В mage_S3CUr3_admin_rule (rule_id, role_id, resource_id, privileges, assert_id, role_type, permission) ЦЕННОСТИ
(1, 1, «все», NULL, 0, «G», «разрешить»)

MySQL: повторяющаяся запись ‘1’ для ключа ‘PRIMARY’

Вы можете скачать его здесь и увидеть это сами
anthonydeboer.nl/dump/Archive.zip

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector