应该先建立一个序列号.CREATE
SEQUENCE
序列号的名称
(最好是表名+序列号标记)
INCREMENT
BY
1
START
WITH
1
MAXVALUE
99999
NOCYCLE
NOCACHE其中最大的值按字段的长度来定,比如定义的自动增长的序列NUMBER(6)
,
最大值为999999INSERT
语句插入这个字段值为:
序列号的名称.NEXTVAL例子:
SQL>
insert
into
s_dept(id,
name,
region_id)
values
(s_dept_id.nextval,
‘finance’,
2)1
row
created.只有运行了序列号的名称.
nextval后序列号的名称.
currval
才有效才有值.
如何在MySQL&Oracle下创建自动递增字段
在MySQL下创建自动递增字段
create table article //先创建一个表
(
id int primary key auto_increment //设置该字段为自动递增字段
title varchar( )
)
insert into article values (null a ) //向数据库中插入数据
select * from article 结果如下
Id
Title
a
insert into article values (null b )
insert into article values (null c )
insert into article (title) values ( d )
select * from article 结果如下
Id
Title
a
b
c
d
但是oracle没有这样的功能 但是通过触发器(trigger)和序列(sequence)可以实现
假设关键字段为id 建一个序列 代码为
create sequence seq_test_ids minvalue maxvalue start with increment by nocache order <! [if !supportLineBreakNewLine] ><! [endif] >
建解发器代码为
lishixinzhi/Article/program/Oracle/201311/18903两个方法:
1,重新创建一个表,然后创建一个序列,把老数据导入新表,删除老表,修改新表名字为老表
2,直接在原来表上增加一个字段,创建一个序列,通过更新的方式修改老数据的这个字段。
具体 *** 作主要是2点,首先是创建一个序列名sequence;
然后是,insert语句的时候:将自增的字段的位置,写成序列名.nextval。
从创建表开始,然后创建sequence,到insert语句
1.首先创建表
CREATE TABLE "FLOWCAL"."T_USERINFO"
( "C_ID" NUMBER(*,0),
"C_USER" VARCHAR2(20 BYTE),
"C_PASSWORD" VARCHAR2(20 BYTE),
"C_ROLE" VARCHAR2(20 BYTE),
"C_COMMENT1" VARCHAR2(20 BYTE),
"C_COMMENT2" VARCHAR2(20 BYTE)
)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)