
进入设计表界面
首先将该字段的数据类型选成数值型的,比如decimal或者bigint
然后在下面列的标识处,选择“是”
然后下面两行,标识种子:表示自动增长的起点是几,默认1
标识增量:表示每次自增的时候跨度是多少,默认每次自增1
oracle
中不能设置自动增加,这个和其他数据库不一样,但是有
序列,这个是Oracle自己特有的东西,
首先创建序列:
create
sequence
seq;
这就创建好了,然后
seqnextval
就会返回一个值,不会重复的值,
insert
into
tablename
values(seqnextval,'001','javabook');
insert
into
tablename
values(seqnextval,'001','javabook');
insert
into
tablename
values(seqnextval,'001','javabook');
看明白没?这样前3个id
分别是
1,2,3
在建立表的时候设置id为自动增长的 [id] [int] IDENTITY (1, 1)
SQL语句是insert into user(name,passwd) values (name ,passwd)。新增一条数据 id 就会自动加1
INSERT INTO是sql数据库中的语句,可以用于向表格中插入新的行。
扩展资料
(1) 数据记录筛选:
sql="select from 数据表 where字段名=字段值 order by字段名[desc]"(按某个字段值降序排列。默认升序ASC)
sql="select from 数据表 where字段名like '%字段值%' order by 字段名 [desc]"
sql="select top 10 from 数据表 where字段名=字段值 order by 字段名 [desc]"
sql="select top 10 from 数据表 order by 字段名 [desc]"
sql="select from 数据表 where字段名in ('值1','值2','值3')"
sql="select from 数据表 where字段名between 值1 and 值2"
(2) 更新数据记录:
sql="update 数据表 set字段名=字段值 where 条件表达式"
sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"
(3) 删除数据记录:
sql="delete from 数据表 where 条件表达式"
sql="delete from 数据表" (将数据表所有记录删除)
(4) 添加数据记录:
sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"
sql="insert into 目标数据表 select from 源数据表" (把源数据表的记录添加到目标数据表)
(5) 数据记录统计函数:
AVG(字段名) 得出一个表格栏平均值
COUNT(;字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加
引用以上函数的方法:
sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=connexcute(sql)
用 rs("别名") 获取统计的值,其它函数运用同上。
查询去除重复值:select distinct from table1
(6) 数据表的建立和删除:
CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )
(7) 单列求和:
SELECT SUM(字段名) FROM 数据表
参考资料——百度百科SQL insert into
一种较简单的,直接获取你数据库中的最后一个ID号,在程序里自己写方法传入这个ID号,处理后返回出一个+1的ID号!这个就是新ID,不过这个方法是不会自动补漏,可能你会删除掉一个004,记录还存在003和005,而新ID就会是006!另外一种就是在数据库中取出ID整列值,并对值进行一个循环比较,下一列是否比上一列的值大1,不是证明有漏,可取该值为新ID号,如果判断到最后没漏,也是直接在最后的值+1为最新ID值
希望对你有帮助
就我所知这个好像无法实现,就算你自己编译mysql恐怕也很难。因为last_insert_id()这个内置的函数返回最近一次插入的自增长ID,当没有符合条件的ID时,它返回0,所以如果自增长从0开始的话,这个返回值就很难判定到底是插入了一条自增长ID为0的记录还是没有符合条件的记录了。
使用自增长字段为主键有不少问题,比如维护或是在大型分布应用中主键冲突的解决等。在一些大型分布应用中主键一般选用guid,这可以有效的避免主键冲突,减少对主键维护的工程。当然,对于中小型的应用,自增长字段的好处更多一些,简单、快速。
Sqlite中,一个自增长字段定义为INTEGER PRIMARY KEY AUTOINCREMENT,那么在插入一个新数据时,只需要将这个字段的值指定为NULL,即可由引擎自动设定其值,引擎会设定为最大的rowid+1。当然,也可以设置为非NULL的数字来自己指定这个值,但这样就必须自己小心,不要引起冲突。当这个rowid的值大于所能表达的最大值 9223372036854775807 (30及以后版本的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')) -- 时间
);
第三,使用自增长字段,引擎会自动产生一个sqlite_sequence表,用于记录每个表的自增长字段的已使用的最大值,用户可以看到,并可以用使用 Update、Delete和Insert *** 作,但不建议这么使用,这会让引擎混乱。如果使用rowid,也会有这么一个内部表,用户可以维护rowid 值,但看不到。
这么看来,如果直接使用rowid来代替自增加字段,根据两者的细微的差别,需要注意是否与自己的应用冲突,如果没有冲突,那么用rowid会更快一点。
SQLite中创建自增字段:
简单的回答:一个声明为 INTEGER PRIMARY KEY 的字段将自动增加。
从 SQLite 的 234 版本开始,如果你将一个表中的一个字段声明为 INTEGER PRIMARY KEY,那么无论你何时向该表的该字段插入一个 NULL 值,这个 NULL 值将自动被更换为比表中该字段所有行的最大值大 1 的整数;如果表为空,那么将被更换为 1。
一个新的API函数 sqlite3_last_insert_rowid() 返回最近的插入 *** 作的整形键
注意这个整型键始终比之前插入表中的最后一个键大1。新键相对于表中的已有键来说是唯一的,但它可能与之前从表中删除的键值重叠。要始终得到在整个表中唯一的键,在INTEGER PRIMARY KEY的声明之前加关键词AUTOINCREMENT这样被选的键将总是比表中已存在的最大键大1。若可能的最大键已存在于表中,INSERT *** 作将失败并返回一个SQLITE_FULL错误码
以上就是关于数据库表ID怎么设置自动增长全部的内容,包括:数据库表ID怎么设置自动增长、oracle数据库中ID怎么自增长,怎么设置啊、Mysql数据库中,设置id为自动增加,向数据库中插入数据时,SQL语句怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)