MySQL如何设置USERNAME字段应该指定为UNIQUE

时间:2015-08-13 05:41:41

标签: php mysql unique create-table

这是我在index.php中的代码:

$sql = "CREATE TABLE 6470exerciseusers (
USERNAME VARCHAR(100),
'PASSWORD_HASH' CHAR(40),
PHONE VARCHAR(10),
UNIQUE (USERNAME)
)";

这是错误:

  

创建表时出错:SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在'' PASSWORD_HASH'附近使用。 CHAR(40),PHONE VARCHAR(10),UNIQUE(USERNAME))'在第3行

4 个答案:

答案 0 :(得分:2)

尝试:

 $sql = "CREATE TABLE 6470exerciseusers (
   `USERNAME` VARCHAR(100) UNIQUE,
   `PASSWORD_HASH` CHAR(40),
   `PHONE` VARCHAR(10)
   )";

表格结构遗漏Primary key,最好将unique更改为PRIMARY KEY

$sql = "CREATE TABLE 6470exerciseusers (
   `USERNAME` VARCHAR(100) primary key,
   `PASSWORD_HASH` CHAR(40),
   `PHONE` VARCHAR(10)
   )";

答案 1 :(得分:1)

您的创建查询有误,所以让我先纠正它:

您使用'PASSWORD_HASH',通过删除''(单引号)来纠正。

$sql = "CREATE TABLE 6470exerciseusers (
USERNAME VARCHAR(100),
PASSWORD_HASH CHAR(40)
PHONE VARCHAR(10),
UNIQUE (USERNAME)
)";

另请注意,您还需要为 USERNAME 唯一字段设置排序规则类型。如果不这样,那么可能具有相同值的第二个记录插入失败并出现约束违规。您可能需要使用区分大小写的排序规则创建列(例如utf8_cs):

$sql = "CREATE TABLE 6470exerciseusers (
USERNAME VARCHAR(100) SET utf8 COLLATE utf8_cs NOT NULL UNIQUE,
PASSWORD_HASH CHAR(40)
PHONE VARCHAR(10)
)";

这对你有帮助。

答案 2 :(得分:0)

 CREATE TABLE Yourtablename (
USERNAME VARCHAR(100) UNIQUE ,
PASSWORD_HASH CHAR(40),
PHONE VARCHAR(10),
)

您的sql语法中有错误您可以使用上面的语句

清楚说明

答案 3 :(得分:0)

您应该在localStorage.setItem('sidebar', 1); //sets value localStorage.getItem('sidebar'); //gets value localStorage.removeItem('sidebar'); //removes value 中出现

错误:

SQL syntax