求一个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);