首先,我是SQL的新手,所以我无法解释我的问题所在。我要问的任何问题,我会清除它。
我在使用phpmyadmin的SQL数据库中遇到问题。我有一个未签名的字段,当我向房间表添加一个房间时,它的room_id
值为1
。然后,当我添加房间时,这会逐渐增加。这是有道理的。但是,如果我有两个房间(id 1, 2)
并且我删除了2号,那么我添加另一个房间,下一个房间ID将是id 3.有没有办法确保它需要下一个可用的插槽而不是不断递增?即如果我删除了2号房间,则创建的下一个房间的ID为2?
我对SQL非常陌生,所以请握住我的手,引导我完成我需要做的事情,而不是给我一个过于复杂的答案......拜托!
答案 0 :(得分:3)
您的ID字段设置为自动增量。这就是它的工作原理,它将最大数字id存储在表中,然后递增它并将其分配给下一个插入的行。
考虑一下,假设你有下一行:row_1(1),row_2(2),row_3(3)。如果删除row_2行,则下一行索引将为4,因此您将具有以下内容:row_1(1),row_3(3),row_4(4)。
如果你想在id字段中加入你自己的逻辑,你应该取消选中A_I选项,并在每个插入中放置任意数字(,只要它保持唯一)。
答案 1 :(得分:1)
您的表具有由数据库任意分配的主键。其目的是确保表中的每条记录都能被唯一标识。在删除个别记录时,数字存在差距这一事实不值得关注,应予以忽视。
表中的后续INSERT
将不会重复使用这些已删除的主键值,也不会重复使用。
如果此处的问题是您使用该值来确定表中的记录数,那么请使用查询,例如:
SELECT COUNT(*) FROM [tablename]