SQL_Oracle 表中ID字段的自动递增
2016-07-07 17:38
585 查看
目标:实现向一张表中插入数据时,ID字段自动递增。
开始实验:
(1)、创建实验表
createtable test_ID_add
(
ID NUMBER(10),
USERNAME VARCHAR2(32),
TEL VARCHAR2(11),
CREATE_DATE datedefaultsysdate
);
(2)、创建序列
使用PL/SQL Developer创建序列
[plain]
view plain
copy
补充:
对于序列的创建,我们也可以通过命令实现,如下:
create sequence seq_test
increment by 1
start with 1
nomaxvalue
nominvalue
nocache
--参数说明
--seq_test,表示创建序列的名称
--increment by 1 表示每次增加1
--start with 1表示开始于1
--nomaxvalue表示没有最大值
--nominvalue表示没有最小值
--nocache表示序列号达到上限后不继续扩展
补充结束
(3)、创建触发器
--每次向test_id_add表新插入一条数据之前,先插入一个ID值
create orreplacetrigger
tr_IDADD
before inserton test_id_add
for eachrow
begin
select seq_idadd.nextvalinto :new.idfrom
dual;
end;
(4)、测试
SQL>insert into test_id_add(Username,TEL)values('huangyanlong','12345678900');
--插入第一条数据
SQL>commit;
SQL>SELECT *from test_id_add;
SQL>insertinto
test_id_add(Username,TEL) values('lilei','13713777777');
--插入第二条数据
SQL>commit;
SQL>SELECT *from test_id_add;
如图所示,ID字段在以每次加一后自动增长。
开始实验:
(1)、创建实验表
createtable test_ID_add
(
ID NUMBER(10),
USERNAME VARCHAR2(32),
TEL VARCHAR2(11),
CREATE_DATE datedefaultsysdate
);
(2)、创建序列
使用PL/SQL Developer创建序列
[plain]
view plain
copy
补充:
对于序列的创建,我们也可以通过命令实现,如下:
create sequence seq_test
increment by 1
start with 1
nomaxvalue
nominvalue
nocache
--参数说明
--seq_test,表示创建序列的名称
--increment by 1 表示每次增加1
--start with 1表示开始于1
--nomaxvalue表示没有最大值
--nominvalue表示没有最小值
--nocache表示序列号达到上限后不继续扩展
补充结束
(3)、创建触发器
--每次向test_id_add表新插入一条数据之前,先插入一个ID值
create orreplacetrigger
tr_IDADD
before inserton test_id_add
for eachrow
begin
select seq_idadd.nextvalinto :new.idfrom
dual;
end;
(4)、测试
SQL>insert into test_id_add(Username,TEL)values('huangyanlong','12345678900');
--插入第一条数据
SQL>commit;
SQL>SELECT *from test_id_add;
SQL>insertinto
test_id_add(Username,TEL) values('lilei','13713777777');
--插入第二条数据
SQL>commit;
SQL>SELECT *from test_id_add;
如图所示,ID字段在以每次加一后自动增长。
相关文章推荐
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- OS block size和Oracle block size,查找OS Blocksize的方法
- oracle中创建数据库和表空间的几点总结
- 数据库自动备份脚本
- oracle的nvl函数的使用介绍
- 解决oracle用户连接失败的解决方法
- oracle的一些tips技巧
- Oracle 下的开发日积月累
- Oracle存储过程之数据库中获取数据实例
- Windows下ORACLE 10g完全卸载的方法分析
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ORACLE LATERAL-SQL-INJECTION 个人见解