我尝试将数据库文件上传到我的服务器,但导入时收到以下错误消息。我已经搜索过其他类似的问题,但无法解决这个问题。
这是我得到的信息:
第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
答案 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_rule
(rule_id
,role_id
,resource_id
,privileges
,assert_id
,role_type
,{{1价值观
(1,1,'all',NULL,0,'G','允许')
MySQL:键'PRIMARY'重复输入'1'
您可以在此处下载并亲自查看 anthonydeboer.nl/dump/Archive.zip