oracle的自增主键需要用序列和触发器来实现,
我们首先创建一张表:主键为int,实现自增
createtableTEST
(
ID intPRIMARYKEY,
test1 varchar2(20),
test2 varchar2(20),
test3 varchar2(20)
)
创建一个序列:
create sequence SEQ_TEST
minvalue 1 --
最小值
maxvalue 999999999999999999999999999 --
最大值
start with 1 ---从1开始
increment by 1 ---每次加1
nocycle --
一直累加,不循环
nocache;
创建一个触发器实现数据插入时主键自增:
CREATE OR REPLACE TRIGGER tg_test
//test表名,id主键名,seq_test.nextval序列
BEFORE INSERT ON test
FOR EACH ROW WHEN (new.id is null)
begin
select seq_test.nextval into:new.id from dual;
end;
可以看出当插入数据主键为空时,会使用序列产生自增主键
//------------------触发器样式
CREATE OR REPLACE TRIGGER TRI_SCORE
BEFORE INSERT OR UPDATE ON XUANKE
FOR EACH ROW
BEGIN
//如果score为空,则令score=0
IF :new.SCORE IS NULL THEN :new.SCORE:= 0;
END IF;
END;
相关推荐
主键自增在插入数据的时候是很实用的,可以获取并操作返回的插入记录的ID,接下来介绍Oracle如何创建主键自增表,感兴趣的你可以了解下,就当是巩固知识,希望此文对你有所帮助
到此这篇关于Navicat Premium中Oracle创建主键自增的方法的文章就介绍到这了,更多相关Navicat Premium主键自增内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!
Oracle的字段自增功能,可以利用创建触发器的方式来实现,接下来我们就来看看Oracle数据库中创建自增主键的实例教程,需要的朋友可以参考下
oracle设置主键自增的方法,可以图形化界面也可以用sql语句,两种方法均亲自验证过。
一、创建序列 1.1、直接在PLSQL中设置 1.2、命令创建 create sequence seq_users ##创建序列seq_users increment by 1 ## 步长,每次加1 start with 1 ##从1开始 minvalue 1 ##最小值 maxvalue 9999999 ##最大值 ...
oracle中创建自增主键的方法
ORACLE自增主键设置方法ORACLE自增主键设置方法
Mybatis插入数据返回自增主键 Mybatis插入数据以后只会返回影响的数据库行数,如果是插入一条数据成功则返回1,失败返回零,插入多条返回插入成功的数量。 通过注解或者xml配置无法直接返回自增的主键。Mybatis插入...
今天从oracle迁移数据到mysql碰到个需求:原先的主键字段需要改成mysql中的自增字段,而且原先数据的值不能变,以后新插入的值从原先数据最大的值开始自增。 解决办法: 构建环境: mysql> CREATE TABLE test -> ( ...