【发布时间】:2023-04-05 22:45:03
【问题描述】:
我似乎找不到任何关于创建序列的信息。
如果有一个现有的数据库并且一个表 PEOPLE 有主键 SIN,如果我想生成主键。鉴于主键是随机的,我将如何做到这一点。本质上,我认为如果我只需要计算行数并将其设置为我的创建序列中的最小值,这将很容易。但是,鉴于表中的主键是随机的,我将如何实现创建序列?如果我只想添加新的主键,其值从之前插入的值递增。
或者创建序列会自动为我检查吗?
【问题讨论】:
-
随机数对序列号的附加值是多少?如果是随机的,你必须在使用它之前检查唯一性,这对我来说似乎是一种资源浪费。我了解公共字段需要随机值,而不是 PK。
-
@CedricSimon,随机密钥的标准原因是降低 URL 破解网站的能力。在网络的早期,您可以通过将 cookie 编辑为比您指定的值低或高一个的值来劫持购物卡软件。会话键通常是 MySQL 数据库中的 AUTOINCREMENT 列。类似地想象去您的银行并下载您的银行对帐单,然后将 URL 中的任何数字编辑为减一,然后发现您可以下载其他人的银行对帐单。 (这仍然会发生!)
-
@Ven:感谢您的有趣评论。