Mysql 如果用户名不存在,则插入SQL
此查询有什么问题:Mysql 如果用户名不存在,则插入SQL,mysql,sql,Mysql,Sql,此查询有什么问题: INSERT INTO `customers`(`username`, `password`) VALUES (:username, :password) WHERE NOT EXISTS ( SELECT `username` FROM `customers` WHERE `username`=:username ); 这个问题怎么了?它会生成一个语法错误 如果要防止
INSERT INTO `customers`(`username`, `password`)
VALUES (:username, :password)
WHERE NOT EXISTS (
SELECT `username` FROM `customers` WHERE `username`=:username
);
这个问题怎么了?它会生成一个语法错误 如果要防止重复,请在表上使用唯一约束:
ALTER TABLE customers ADD CONSTRAINT unq_customers_username UNIQUE (username);
然后,如果尝试使用插入重复值
INSERT INTO `customers`(`username`, `password`)
VALUES (:username, :password);
您将得到一个违反约束的错误
在这种情况下,通常需要实际更新现有行中的密码。您可以在重复密钥更新时使用MySQL扩展:
你的数据库是什么?Oracle或SQLServer还是?你不应该告诉我们它有什么问题吗。。。?当你运行它时会发生什么?为什么这是错误的?应该怎么办?
INSERT INTO `customers`(`username`, `password`)
VALUES (:username, :password)
ON DUPLICATE KEY UPDATE password = :password;