BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #30108同步于 2008/9/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

[求助]数据库的SQL导入有问题

ericyosho
2008/9/19镜像同步11 回复
下面的这段SQL语句是备份mysql的时候,它自动生成的。 现在我打算导入到其他的机器上,但是报错。 说是红色的地方的key重复出现了。 完全不明白什么意思,谁帮忙指点一下吧。 DROP TABLE IF EXISTS `paratask`; CREATE TABLE `paratask` ( `TaskId` bigint(20) unsigned NOT NULL auto_increment, PRIMARY KEY (`TaskId`) ) ENGINE=InnoDB AUTO_INCREMENT=426 DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `fixedtimetestrecord`; CREATE TABLE `fixedtimetestrecord` ( `recordId` int(10) unsigned NOT NULL auto_increment, `taskId` bigint(20) unsigned NOT NULL default '0', `phoneIMSI` bigint(20) unsigned NOT NULL default '0', `startTime` datetime NOT NULL, PRIMARY KEY USING BTREE (`recordId`), KEY `FK_FixedTimeTestRecord_1` USING BTREE (`taskId`), CONSTRAINT `FK_FixedTimeTestRecord_1` FOREIGN KEY (`TaskId`) REFERENCES `paratask` (`TaskId`) ON DELETE CASCADE ON UPDATE CASCADE, ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
coolfantasy机器人#1 · 2008/9/19
错误信息是啥
ericyosho机器人#2 · 2008/9/19
The server has returned this error message:Duplicate key name 'FK_FixedTimeTestRecord_1' MySQL Error. 意思是说key重复么?
coolfantasy机器人#3 · 2008/9/19
嗯 有两个一样的 改一个看看 两个 MySQL 的版本是不是不同啊
ericyosho机器人#4 · 2008/9/19
版本应该都是一样的。 其实我就是不知道怎么改,sql 盲。 =。=
ericyosho机器人#5 · 2008/9/20
咋办,自己顶起,希望引起达人注意……
coolfantasy机器人#6 · 2008/9/20
CREATE TABLE `fixedtimetestrecord` ( `recordId` int(10) unsigned NOT NULL auto_increment, `taskId` bigint(20) unsigned NOT NULL default '0', `phoneIMSI` bigint(20) unsigned NOT NULL default '0', `startTime` datetime NOT NULL, PRIMARY KEY USING BTREE (`recordId`), KEY `FK_FixedTimeTestRecord_1` USING BTREE (`taskId`), CONSTRAINT `FK_FixedTimeTestRecord_2` FOREIGN KEY (`TaskId`) REFERENCES `paratask` (`TaskId`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
coolwc机器人#7 · 2008/9/20
InnoDB也支持外键约束。InnoDB中对外键约束定义的语法看起来如下: [CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...) REFERENCES tbl_name (index_col_name, ...) [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}] [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}] 外键定义服从下列情况: · 所有tables必须是InnoDB型,它们不能是临时表。 · 在引用表中,必须有一个索引,外键列以同样的顺序被列在其中作为第一列。这样一个索引如果不存在,它必须在引用表里被自动创建。 · 在引用表中,必须有一个索引,被引用的列以同样的顺序被列在其中作为第一列。 · 不支持对外键列的索引前缀。这样的后果之一是BLOB和TEXT列不被包括在一个外键中,这是因为对这些列的索引必须总是包含一个前缀长度。 · 如果CONSTRAINTsymbol被给出,它在数据库里必须是唯一的。如果它没有被给出,InnoDB自动创建这个名字。 【 在 coolfantasy (Cool) 的大作中提到: 】 : CREATE TABLE `fixedtimetestrecord` ( : `recordId` int(10) unsigned NOT NULL auto_increment, : `taskId` bigint(20) unsigned NOT NULL default '0', : ...................
ericyosho机器人#8 · 2008/9/20
原意好像是要在fixedtimerecord那个表里面,引入paratask表中的TaskId一列作为外键。 而这个外键的名字,好像要把TaskId,换成taskId。 我现在严重怀疑,这句话到底什么有没有意义。 KEY `FK_FixedTimeTestRecord_1` USING BTREE (`taskId`),
coolwc机器人#9 · 2008/9/20
有意义 没意义的是CONSTRAINT xxxx 【 在 ericyosho (ericyosho) 的大作中提到: 】 : 原意好像是要在fixedtimerecord那个表里面,引入paratask表中的TaskId一列作为外键。 : 而这个外键的名字,好像要把TaskId,换成taskId。 : 我现在严重怀疑,这句话到底什么有没有意义。 : ...................