0

我正在尝试在表中插入新记录,我有两列

      user_records
 ------------------------
| Attribute |  Datatype  |
|------------------------|
| user_id   | varchar(25)|
| count     | int        |
 ------------------------

询问 :

INSERT into user_records Values("nix_1", 0)

但如果用户已经存在,那么它应该增加计数 1

4

2 回答 2

0

您将在尝试之前检查记录是否存在INSERT。您的查询应该与以下内容一致。示例适用于 SQL Server。

DECLARE @sUserID VARCHAR(25) = "nix_1";    // This should be the parameter passed on into the stored procedure

IF EXISTS(SELECT user_id FROM WHERE user_id = @sUserID)
    // Increase the count
    UPDATE user_records SET count = count  + 1 
        WHERE user_id = @sUserID
ELSE
    // Insert new record
    INSERT INTO user_records Values (@sUserID , 0)

请参阅以下链接以获取有关信息EXIST

存在 (Transact-SQL)

SQL EXISTS 运算符

SQL中EXISTS和IN的区别?

于 2016-06-29T23:14:00.040 回答
0

为什么不使用INSERT ... ON DUPLICATE KEY语法?

INSERT INTO user_records (user_id, count) VALUES ('nix_1', 0)
ON DUPLICATE KEY UPDATE count = count + 1;

http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html

于 2016-06-29T23:19:13.363 回答