如何使数据库的id字段自动加1

如题所述

第1个回答  2017-07-06
使用自增长字段为主键有不少问题,比如维护或是在大型分布应用中主键冲突的解决等。在一些大型分布应用中主键一般选用guid,这可以有效的避免主键冲突,减少对主键维护的工程。当然,对于中小型的应用,自增长字段的好处更多一些,简单、快速。
Sqlite中,一个自增长字段定义为INTEGER PRIMARY KEY AUTOINCREMENT,那么在插入一个新数据时,只需要将这个字段的值指定为NULL,即可由引擎自动设定其值,引擎会设定为最大的rowid+1。当然,也可以设置为非NULL的数字来自己指定这个值,但这样就必须自己小心,不要引起冲突。当这个rowid的值大于所能表达的最大值 9223372036854775807 (3.0及以后版本的rowid最大值)后,rowid的新值会这个最大数之前随机找一个没被使用了的值。所以在rowid达到最大值前,rowid的值是严格单调增加的。
INTEGER PRIMARY KEY AUTOINCREMENT 自增长字段的算法与rowid稍微有些不同。
第一,在达到最大值后,rowid会找已被删除的字段对应的rowid作为新值,而自增长字段则会丢出一个SQLITE_FULL的错误。
第二,自增长字段在增加新值时,是找一个从没被使用过的rowid作为新值,而rowid则是找最大已存在的rowid+1。这里对应用的影响会比较大,尤其是一些对id值有依赖的元记录,只适合使用自增长字段而不能用rowid。

比如,我们设计一个元记录表:
drop table test;
create table test (
[tkid] integer PRIMARY KEY autoincrement, -- 设置主键
[tktype] int default 0,
[tableid] varchar (50),
[createdate] datetime default (datetime('now', 'localtime')) -- 时间
);本回答被网友采纳

MySQL实现ID自动增长的简便方法mysql中id自动加1
PRIMARY KEY (id));在这个表中,id字段被定义为AUTO_INCREMENT和PRIMARY KEY。因此,在每次插入新的记录时,MySQL会自动为id字段生成一个唯一的ID。请注意,AUTO_INCREMENT只能应用于INTEGER类型的字段。在实际使用中,我们可以使用INSERT语句向该表中添加新的记录,如下所示:INSERT INTO example_table (...

数据库中varchar类型怎么自增
1、使用查询语句查找表中最后一条数据的id,通过order by id desc limit 1获取。2、使用substring函数截取id中数值部分,例如在BHXXXX中截取数字0001。3、使用concat函数将新id格式BH与截取的数字部分连接起来,但发现直接加1后结果错误,为BH2而非预期的BH0002。4、为确保数字正确填充,使用LPAD函数将...

如何通过MySQL实现自增功能加一简介mysql加一
1、MySQL auto_increment关键字法:MySQL auto_increment关键字可以让一个列的值自动增长,该列的值永远大于等于上一次的值,且以此类推,如果要使用auto_increment关键字,一定要定义该字段为主键,另外,如果需要从特定的值开始自增,可以通过设置关键字auto_increment的参数来设定,下面是示例语句:CREATE...

MySQLID自增机制使数据管理更便捷mysql中id默认自增
关闭数据库连接 conn.close()在这个示例代码中,我们创建一个包含id、username和gender三个字段的user_info表。id字段被定义为自增类型,并且被指定为主键。这意味着当将带有username和gender字段的行插入到表中时,它们将自动获得一个唯一的id值。id字段的值将自动递增,并在下一个INSERT语句中使用。当...

...值字符型(办字[2013]1号),则么实现该字段自动加1?
下面再来解决文号自动加1的问题:先要在uses里添加StrUtils,这里面包含了很多字符串处理的函数,必不可少。然后用如下代码来实现文号加1:var zihao,newzihao,num:string; len:integer;begin zihao:=...\/\/这里就把刚才读出来的完整的发文字号存在zihao变量就是了 len:=posex('号',zihao)-po...

oracle sql developer建表的时候id字段的自动递增怎么设置
1、首先,打开sql server数据库,创建一个新表,然后在表中创建id字段并选择int类型,如下图所示,然后进入下一步。2、其次,完成上述步骤后,选择id字段,然后在下面的列属性中找到标识规范,如下图所示,然后进入下一步。3、接着,完成上述步骤后,单击标识规范,可以看到默认值为“否”,这表示不...

如何实现列id 自动加1
在创建数据库表的时候,可以建立一列类似ID的列,属性设置为自动递增即可。

怎么在SQL中实现id自动加1的算法
1.是定义个触发器,由系统自动加1 2.是定义一个序列,执行SQL时由程序自动加1 如:定义S_TEST为序列 调用SELECT S_TEST.NEXTVALUE FROM DUAL 就自动加1了

怎么设置“向数据库添加数据,ID自增1”
mssql:建表的时候就定义好标识列,初始1,自增量1 oracle:需要自定义序列,或者在insert语句中,select max(id)+1 from 表

oracle怎么实现id自增和设置主键啊
可以使用序列实现id自增,主键的语法为primary key。当一个序列第一次被查询调用时,它将返回一个预定值。在随后的每次查询中,序列将产生一个按指定的增量增长的值。序列可以循环,或者是连续增加的,直到指定的最大值为止。创建序列语法如下:create sequence [模式]序列名称[start with 起始数字] [...

相似回答