【问题标题】:SQL: How to generate a unique value for a Primary KeySQL:如何为主键生成唯一值
【发布时间】:2020-09-09 08:01:38
【问题描述】:

如标题所述。我确实有下表:

CREATE TABLE exampleTable(
    ID int NOT NULL,
    Text varchar(255),
    PRIMARY KEY (ID)
);

通过插入值:

INSERT INTO exampleTable (ID, Text)
VALUES (123, 'Hello World');

有时可以为表中已存在的主键添加值,从而为您提供Error

问题

  1. 我们可以通过哪种方法确保所选主键的值始终是唯一的?

  2. 如何生成始终唯一的主键值。

对于 2. 问题,可能的方法:

//Check if the new Value is already in the Table by
//Iterating and comparing through all the Primary Key Values.

【问题讨论】:

  • 你想要auto_increment
  • 这是家庭作业吗?我想不出另一个不使用自动增量的理由。
  • 嘿,该表没有设置 auto_increment。有没有其他办法?

标签: mysql sql datatable primary-key


【解决方案1】:

如果你发送了一个主键约束,它只允许唯一值。 您可以启用 Auto-increment/IsIDentity 列 true。


另一种方法是将 id 的类型更改为 uniqueidentifier 并手动插入 Guid。 那总是独一无二的。 但不推荐

【讨论】:

    【解决方案2】:

    第一个答案很简单

    1. PRIMARY KEY 约束保证这些值是唯一的,如果不是,你会得到一个error

    2. 更复杂,您可以尝试获取 max(id),然后在源代码中或在 INSERT TRIGGER 之前增加它,但在重型服务器中,您仍然可以得到错误,这就是为什么我们使用 auto_increment 或 uuids

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多