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

时间:2015-02-24 08:25:25

标签: javascript sql asp.net

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

这些配置文件的主键ID具有自动增量功能。

当用户创建其个人资料时,他必须上传文件。

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

我可以在数据库中重试max(id)并在我的ajax上传期间使用它但是如果有2个人同时创建个人资料:问题。

我提出了其他解决方案:

  • 命名文件bigrandom.ext并将此名称存储在数据库中,但我的老板绝对希望id.ext
  • 使用"未完成"创建空白配置文件标记+上传日期并每月运行批处理以删除数据库中的不完整条目
  • 使用id.ext上传,如果该文件已存在,请将其命名为id + 1.ext,并通过json消息通知网页以回复POST查询

我认为这是一个常见的问题,我想有一些关于此的最佳实践,甚至可能是我不知道的SQL特性。

2 个答案:

答案 0 :(得分:1)

DBMS中的sequence object比使用MAX(id) +1的机会更安全,更强大。自SQL Server 2012以来,MS SQL Server一直支持序列,其他数据库平台已经使用了更长的时间。

答案 1 :(得分:0)

尝试在表格中添加Guid字段,并在上传图片时创建它。它永远都是unque。您可以使用此Guid作为名称保存图像。