我有一个Web应用程序前端,它使用nodeJS来促进MySQL后端的连接和操作。我正在寻找一种方法来实现一个唯一的插入,如果它找到一个重复的键,返回错误信息。有什么我可以按照以下方式实施:
INSERT INTO clients set ? ON DUPLICATE KEY //SELECT "Error: Duplicate Entry"
AS "";
从那里,检索此消息并将其返回给Web前端的用户的最佳方法是什么?
答案 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'
);