Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我们可以将现有列作为主键吗?_Mysql_Sql_Primary Key_Ddl_Unique Key - Fatal编程技术网

Mysql 我们可以将现有列作为主键吗?

Mysql 我们可以将现有列作为主键吗?,mysql,sql,primary-key,ddl,unique-key,Mysql,Sql,Primary Key,Ddl,Unique Key,我有一个列名Token,我正在生成随机数并将它们保存在Token中,但有时它会保存重复的Token,因此我希望使其唯一 我想知道它会影响现有记录吗尝试这样做 ALTER table_namePersons ADD UNIQUE (Token); 执行此操作后,如果尝试插入重复键,则会出现错误并捕获它,您可以生成另一个标记如果尝试向包含非唯一值的列添加唯一约束(或主键约束),则alter语句将失败。您需要首先更新列,使所有值都是唯一的(或删除重复值),然后更改表 ALTER table Stud

我有一个列名
Token
,我正在生成随机数并将它们保存在Token中,但有时它会保存重复的Token,因此我希望使其唯一

我想知道它会影响现有记录吗

尝试这样做

ALTER table_namePersons ADD UNIQUE (Token);

执行此操作后,如果尝试插入重复键,则会出现错误并捕获它,您可以生成另一个标记

如果尝试向包含非唯一值的列添加唯一约束(或主键约束),则
alter
语句将失败。您需要首先更新列,使所有值都是唯一的(或删除重复值),然后更改表

ALTER table Student add primary key (studentID)
使用Alter命令编辑表的DDL,然后通过指定列向其添加主键。 如果主键已经存在,那么首先您必须在定义另一个主键之前删除它-

ALTER table STUDENT drop CONSTRAINT <constraint_name>
ALTER table STUDENT drop约束

他在这方面可能会出错,因为他在该列上已经有了重复项。要在有重复项的列上设置主键,您必须首先清除它们。您是否使用php与sql交互?@Vitoferreli YesThank you。我想这对我有帮助