c# - 仅当行不存在时才插入行

标签 c# sql sql-server-2005

我正在构建一个点击计数器。我有一个文章目录和跟踪唯一访问者。当访问者来访时,我将文章 ID 和他们的 IP 地址插入数据库。首先,我检查文章 ID 是否存在 ip,如果 ip 不存在,我将进行插入。这是两个查询——有没有办法进行这个查询

此外,我没有使用存储过程,我使用的是常规内联 sql

最佳答案

这里有一些选项:

 INSERT IGNORE INTO `yourTable`
  SET `yourField` = 'yourValue',
  `yourOtherField` = 'yourOtherValue';

来自 MySQL 引用手册:“如果使用 IGNORE 关键字,则在执行 INSERT 语句时发生的错误将被视为警告。例如,如果没有 IGNORE,重复现有 UNIQUE 索引或 PRIMARY KEY 值的行表导致重复键错误并且语句被中止。”。)如果记录尚不存在,将创建它。

另一种选择是:

INSERT INTO yourTable (yourfield,yourOtherField) VALUES ('yourValue','yourOtherValue')
ON DUPLICATE KEY UPDATE yourField = yourField;

不抛出错误或警告。

关于c# - 仅当行不存在时才插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1634833/

相关文章:

c# - 如何阻止 HttpUtility.UrlEncode() 将 + 更改为空格?

c# - 处理过多导致后台 worker 崩溃?

c# - LINQ 与 C# 中的相交方法

c# 仅当找到分隔符时才拆分字符串

sql - SQL-语法错误(PK和FK问题)

sql - 排除与 Postgres 中每个父记录关联的第一条记录

sql - 在 oracle 中使用无效的包引用选择查询

sql-server - T-SQL : what COLUMNS have changed after an update?

sql-server-2005 - 对 SQL Server 进行版本控制?

tsql - 如何使用SQL Server 2005在TSQL中以所需的文本打印值