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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们可以将现有列作为主键吗?相关的知识,希望对你有一定的参考价值。

我有一个列名称Token,我正在生成随机数并将其保存在令牌中,但有时它会保存重复的令牌,所以我想让它独一无二。

我想知道它是否会影响现有记录。

答案

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

另一答案
ALTER table Student add primary key (studentID)

使用Alter命令编辑表的DDL,然后通过指定列为其添加主键。如果主键已经存在,那么首先你必须删除它,然后再定义另一个PK -

ALTER table STUDENT drop CONSTRAINT <constraint_name>
另一答案

试试这个

ALTER table_namePersons ADD UNIQUE (Token);

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

以上是关于我们可以将现有列作为主键吗?的主要内容,如果未能解决你的问题,请参考以下文章

mysql表中一个表中可以有多个主键吗?

我们可以在 Sqlite 数据库中使用 Guid 作为主键吗

mysql表中一个表中可以有多个主键吗

可以使用实体框架在另一个表中调用两次作为外键的主键吗?

我可以在我的大多数表中使用我的外键作为我的主键吗?

我们可以为集合数据类型添加主键吗?