在数据库中插入之前获取UID主键

Get a UID primary key before inserting in database

本文关键字:获取 UID 主键 数据库 插入      更新时间:2024-04-09

我正在创建存储在SQL数据库中的用户配置文件(javascript网页)

这些配置文件有一个具有自动递增功能的主键ID

当用户创建其配置文件时,他必须上传一个文件。

我希望这个文件名为id.ext,问题是我在创建概要文件期间通过ajax上传文件,然后将概要文件保存在数据库中,因为用户需要获取有关这个文件的信息,以便可以接受概要文件。

我可以在数据库中重试max(id),并在ajax上传过程中使用它,但如果两个人同时创建配置文件:问题。

我想出了其他解决方案:

  • 将文件命名为bigrandom.ext并将此名称存储在数据库中,但我的老板绝对想要id.ext
  • 在上传时创建带有"不完整"标志+日期的空白配置文件,并每月运行一批以删除数据库中不完整的条目
  • 使用id.ext上传,如果文件已经存在,则将其命名为id+1.ext,并通过json消息通知网页以返回POST查询

由于我认为这是一个常见的问题,我想这方面有一些最佳实践,甚至可能是我不知道的SQL中的一个功能。

DBMS中的序列对象比使用MAX(id) +1更安全、更健壮。自SQL Server 2012以来,MS SQL Server一直支持序列,而其他数据库平台支持序列的时间甚至更长。

尝试在表中添加一个Guid字段,并在上传图像时创建它。它将永远是不可质疑的。U可以将具有此Guid的图像保存为名称。