致命错误重复'PRIMARY'的条目'1'

时间:2014-12-11 21:48:44

标签: php mysql sql-server database duplicates

我尝试将数据库文件上传到我的服务器,但导入时收到以下错误消息。我已经搜索过其他类似的问题,但无法解决这个问题。

这是我得到的信息:

  

第61行出错:(2,1,2,0,' U','网站');

查询:

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

2 个答案:

答案 0 :(得分:1)

不要指定role_id - 因为它是AUTO_INCREMENT字段。

MySQL将为您提供唯一的role_id。

您可以使用LAST_INSERT_ID()来获取AUTO_INCREMENT插入到role_id中的值。您可以将它用于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 :(得分:0)

我仍然收到错误:(

第94行出错:(1,1,'all',NULL,0,'G','允许');

查询: -

INSERT INTO mage_S3CUr3_admin_rulerule_idrole_idresource_idprivilegesassert_idrole_type,{{1价值观 (1,1,'all',NULL,0,'G','允许')

MySQL:键'PRIMARY'重复输入'1'

您可以在此处下载并亲自查看 anthonydeboer.nl/dump/Archive.zip