MySql Unique Index如何生成相应的Response?

时间:2016-04-19 09:06:06

标签: mysql

我有一个简单的数据库,其中包含一个包含我游戏所有用户的表格。我希望用户名和电子邮件地址是唯一的,因此请将它们设置为具有唯一索引。

每当新用户注册游戏时,都会执行以下语句:

tmpQUERY = "INSERT INTO vertix_users (user_name, user_email, user_pass) " +
    "VALUES (" + mysql.escape(userName) +
    ", " + mysql.escape(userEmail) + 
    ", " + mysql.escape(userPass) + ") " +
    "ON DUPLICATE KEY " +
    "RETURN 'This username already exists'";

我可以做一个简单的INSERT IGNORE来避免重复的用户名或电子邮件地址。但我想做的是为用户生成一些有用的反馈; “这个名字已被采用。”或“已在使用中的电子邮件”。上面的代码是我认为可行的任意例子。我怎样才能实现这些目标呢?

1 个答案:

答案 0 :(得分:1)

我认为最简单的解决方案是运行先前的查询以检查名称是否已存在。注册过程不是一个非常苛刻的过程,因为每个用户只注册一次。所以我认为仅在一个查询中尝试这样做是不值得的。此外,使用单独的“checkUserName”进程,您可以在将所有注册表单发送到服务器之前进行检查。例如,一旦用户完成写入他想要的用户名。