sql - INSERT ON DUPLICATE KEY返回消息

时间:2017-09-22 14:31:09

标签: mysql sql node.js sql-insert

我有一个Web应用程序前端,它使用nodeJS来促进MySQL后端的连接和操作。我正在寻找一种方法来实现一个唯一的插入,如果它找到一个重复的键,返回错误信息。有什么我可以按照以下方式实施:

INSERT INTO clients set ? ON DUPLICATE KEY //SELECT "Error: Duplicate Entry" 
AS "";

从那里,检索此消息并将其返回给Web前端的用户的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

最好的方法是在创建表时使用SQL Constraint 关键字,如下所示:

CREATE TABLE Products (
    Id int NOT NULL,
    Key varchar(40) NOT NULL,
    ...
    CONSTRAINT UC_ID UNIQUE (Key)
);

这样,服务器根本不允许您插入重复值。

答案 1 :(得分:-2)

INSERT INTO users
(full_name,
 login,
 password
)
       SELECT 'Mahbub Tito',
              'tito',
              SHA1('12345')
       FROM DUAL
       WHERE NOT EXISTS
       (
           SELECT login
           FROM users
           WHERE login = 'tito'
       );