在SQL中,是否有另一种方法可以在添加记录之前查看记录是否已存在?

时间:2014-03-16 00:25:31

标签: mysql sql

我有一个像这样的MySQL表,

id (primary key) | name | scores

我正在读取一个大文件以将记录插入MySQL表中。

新记录将被添加到此文件中,但旧记录不会被删除,因此当我读取该文件时,数据库中已有很多记录。

除了使用SELECT COUNT查看记录是否已存在于数据库中之外,是否有最好的方法来检查它(以节省处理时间和数据库负载)?

或许我应该直接插入它? (无论如何,数据库都不允许具有重复ID的记录。)

2 个答案:

答案 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)