关于数据库表字段自增长的问题
java程序是这样插入的ps=ct.prepareStatement("insertintobdx_wtb(wtb_wtfl,wtb_wt)values('"+arr.g...
java程序是这样插入的ps=ct.prepareStatement("insert into bdx_wtb(wtb_wtfl,wtb_wt) values('"+arr.get(0)+"','"+arr.get(1)+"')");
程序里是不断调用函数去执行插入语句,执行结果如下:
其中wtb_wtid字段设置自增长,每次加一
问题:为什么字段wtb_wtid在72和74会不连续,怎么解决。
补充两点:wtb_wtid字段是主键,
数据库是sqlserver2008 展开
程序里是不断调用函数去执行插入语句,执行结果如下:
其中wtb_wtid字段设置自增长,每次加一
问题:为什么字段wtb_wtid在72和74会不连续,怎么解决。
补充两点:wtb_wtid字段是主键,
数据库是sqlserver2008 展开
展开全部
你好自增ID呢 是会在你使用插入或者修改语句的时候进行递增+1的,打个比方 如果你的插入语句写错了插入数据不成功,但是数据库的id还是会+1,想要避免或者重新添加ID为73的数据可以打开表设计 把他的自动增长先设为否,然后 insert into 手动插一条id为73的数据进入 插入好之后再把字段增长给调回来
dbcc checkident ('table_name', reseed, new_reseed_value) 当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。
方法二不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。
当表中有了一下数据后
执行语句 DBCC CHECKIDENT ('dbo.Person', RESEED, 10) 后再通过Management Studio添加数据时,ID就会自动从11开始,也就是new_reseed_value+1开始
dbcc checkident ('table_name', reseed, new_reseed_value) 当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。
方法二不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。
当表中有了一下数据后
执行语句 DBCC CHECKIDENT ('dbo.Person', RESEED, 10) 后再通过Management Studio添加数据时,ID就会自动从11开始,也就是new_reseed_value+1开始
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询