SQL里面如何插入自动增长序列号字段?

SQL里面如何插入自动增长序列号字段?,第1张

INSERT时如果要用到从1开始自动增长的数字做唯一关键字,

应该先建立一个序列.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)

)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11841755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存