我必须写一个查询,其中我需要为特定记录分配一个ID
(唯一键),这个记录没有被使用/没有被生成/在数据库中不存在。如何获得表中第一个未使用的ID?
总之,我需要为特定记录生成一个id
并在打印屏幕上显示它。
E.摹:
ID Name 1 abc 2 def 5 ghi
那么,事情是,它应该返回ID=3
作为未还产生下一个即时的,而这一代id
后,我会存储这些数据回到数据库表。
这不是一个HW:我正在做一个项目,我有一个需要写这个查询的需求,所以我需要一些帮助来实现这个。
所以请指导我如何使这个查询,或如何实现这一点。
谢谢。
我不能够添加注释,,所以这就是为什么我在这里写我的意见.. 我使用MySQL作为数据库..
我的步骤是这样的: -
1)从数据库表中检索未被使用的ID。
2)因为他们是没有的。的用户(基于网站的项目),所以我想不会发生并发,所以如果一个用户生成一个ID,那么它应该锁定数据库,直到同一个用户接收到该ID并存储该ID的记录。之后,其他用户可以检索ID(无论哪一个不存在)。(主要要求)..
我如何在MySQL中完成所有这些事情,我想也是Quassnoi的答案值得,但它不是在MySQL中工作..所以PLZ解释一下关于查询,因为它是我的新...并将这个查询工作在MySQL ..
您在项目中使用了哪些关系数据库? – Quassnoi 2009-05-25 16:23:51
这里要小心并发性。如果您有多个用户,运行Quassnoi查询和将结果存储在数据库中的时间间隔可能会导致重复的ID。为什么不让RDBMS管理你的ID列? – 2009-05-25 16:43:09
正如DDaviesBrackett写道,如果这不是家庭作业,那么它会遭受严重的现实世界问题:两个进程可能会运行查询,并获得他们的答案,然后每个尝试插入重复记录。如果这只是为了回答这个问题:有没有差距?那是不同的。那么任何人都会在乎的就很有趣。 – Yishai 2009-05-25 16:54:45