我有一个像这样的MySQL表,
id (primary key) | name | scores
我正在读取一个大文件以将记录插入MySQL表中。
新记录将被添加到此文件中,但旧记录不会被删除,因此当我读取该文件时,数据库中已有很多记录。
除了使用SELECT COUNT查看记录是否已存在于数据库中之外,是否有最好的方法来检查它(以节省处理时间和数据库负载)?
或许我应该直接插入它? (无论如何,数据库都不允许具有重复ID的记录。)
答案 0 :(得分:0)
的Serch示例
INSERT IGNORE INTO table
这方面的简单例子是
INSERT IGNORE INTO `transcripts`
SET `ensembl_transcript_id` = ‘ENSORGT00000000001′,
`transcript_chrom_start` = 12345
`transcript_chrom_end` = 12678;
答案 1 :(得分:0)
我通常使用update + insert方法。
首先我将运行更新语句。更新查询将像选择查询一样+直接更新数据。
update t1 set t1.Name = 'Name', t1.Scores = 99
where t1.Name = 'Name' and t1.Scores = 99
然后检查是否存在受上述查询影响的行。如果没有运行插入语句
if @@RowCount = 0
insert into t1 (Name, Scores) values ('Name',99)