【问题标题】:How to reserve id before inserting record插入记录前如何保留id
【发布时间】:2016-12-13 09:20:31
【问题描述】:

我想从 html 表单中获取新的 sql 记录数据,用户可以在提交之前在 html 表单顶部看到记录 id。

如何实现:

  1. 如果用户取消 html 表单,记录 id 可用于下一条记录
  2. 在提交html表单之前,其他用户不要将记录id与其他html表单一起使用
  3. 我可以使用自动增量 ID

另外,我使用php和mysql[在Laravel框架上]。

【问题讨论】:

  • 您希望您的 id 之间没有任何漏洞吗?如果它不是绝对必要的话,你可能不应该弄乱它,而只是使用自动增量键,当用户输入表单时创建一个,如果用户中止则删除它,从而创建一个未使用的 id
  • 在提交表单之前需要id 可见的原因是什么?
  • 客户坚持以html形式显示id。
  • 除非用户删除记录,否则记录之间不会有任何漏洞。另外如果用户没有取消html表单并关闭浏览器,如何控制?

标签: mysql sql record auto-increment identity


【解决方案1】:

由于并发性,您无法做到这一点。例如,假设有两个用户同时填写表单。

用户 A 首先打开表单,分配给 id 1,用户 B 是第二个,因此是 2,但随后用户 B 先完成表单,id 1 成为间隙。

第二种情况:用户没有按“取消” - 然后 id 至少在一段时间内停止。

最简单的方法是向用户显示之前 db 中的最后一个 id,这样他们就可以暗示他们将在附近的某个地方,以及提交后确切的自动增量 id。

【讨论】:

  • 谢谢。用户想在纸质文档上写id,用户可能出错了。
猜你喜欢
  • 2012-09-28
  • 2014-03-10
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 2013-08-06
  • 1970-01-01
相关资源
最近更新 更多