我有一个构建的注册表单,数据库是mysql。在用户输入用户名时的形式,然后通过ajax请求验证它是否存在。如果它已经存在则不接受新值。现在假设两个用户在同一时间输入用户名。当第一个用户的查询运行时,它检查用户名是否可用,然后同时运行user2的查询。它还会搜索用户名是否存在。那么mysql可以为两个用户输入相同的用户名,除非将第一个用户的用户名插入到表中,搜索user2将同时启用该用户名,因为查询同时启动。是这样还是我在理解这个概念时犯了一个错误。请帮忙???
答案 0 :(得分:0)
这一切都取决于你如何设置你的桌子。如果您将用户名列设置为唯一,那么无论您的用户名是多么接近,都不会有用户名副本,第二次点击将始终失败。
http://www.w3schools.com/sql/sql_unique.asp
UNIQUE和PRIMARY KEY约束都为一列或一组列的唯一性提供了保证。