【问题标题】:Can we make existing column as primary key?我们可以将现有列作为主键吗?
【发布时间】:2018-06-29 09:00:17
【问题描述】:

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

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

【问题讨论】:

  • 你用php和sql交互了吗?
  • @VitoFerrulli 是的

标签: mysql sql primary-key ddl unique-key


【解决方案1】:

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

【讨论】:

  • 谢谢。我认为它会帮助我
【解决方案2】:
ALTER table Student add primary key (studentID)

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

ALTER table STUDENT drop CONSTRAINT <constraint_name>

【讨论】:

  • 要在具有重复项的列上设置主键,您必须先删除它们。
【解决方案3】:

试试这个

ALTER table_namePersons ADD UNIQUE (Token);

执行此操作后,如果您尝试插入重复的密钥,您将遇到错误并捕获它您可以生成另一个令牌

【讨论】:

  • 他会在这方面遇到错误,因为他在该列上已经有重复项
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-23
  • 2013-07-12
  • 2019-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多