Я пытаюсь загрузить файл базы данных на свой сервер, но получаю следующее сообщение об ошибке при импорте. Я искал другие подобные проблемы, но не могу решить, как это исправить.
Это сообщение, которое я получаю:
Ошибка в строке 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
Не указывайте 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
Я все еще получаю ошибку 🙁
Ошибка в строке 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