首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

sql语句,关于导入数据的

2012-04-11 
求一个sql语句,关于导入数据的CREATE TABLE `szs_quata_std` (`id` int(8) unsigned zerofill NOT NULL au

求一个sql语句,关于导入数据的
CREATE TABLE `szs_quata_std` (
  `id` int(8) unsigned zerofill NOT NULL auto_increment COMMENT '自动编号',
  `szs_type` set('1','2') NOT NULL,
  `szs_gg` varchar(100) NOT NULL ,
  `szs_gid` varchar(10) NOT NULL ,
  `szs_price` decimal(8,4) NOT NULL,
  `szs_date` date NOT NULL COMMENT,
  `szs_person` varchar(10) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `NewIndex1` (`szs_type`,`szs_gg`,`szs_gid`),
  KEY `tgg` (`szs_type`,`szs_gg`),
  KEY `gid` (`szs_gid`)
 ) ENGINE=MyISAM AUTO_INCREMENT=476294 DEFAULT CHARSET=utf8

现在要导入大批数据,如果表中有数据,则更新。replace是一个很好的选择,但是我关键字设置了id自动编号,那么replace就不起作用了吧?实际上关键字组合是szs_type,szs_gg,szs_gid,如果表中有这记录,则更新,否则插入,有无好的sql语句?

[解决办法]
在szs_type,szs_gg,szs_gid上创建UNIQUE索引即可使用REPLACE了。

create unique index xxx on `szs_quata_std` (szs_type,szs_gg,szs_gid);

热点排行