数据库中如何把某字段变为1,2,3,4,5的序列?有这个命令吗?

数据库中如何把某字段变为1,2,3,4,5的序列?有这个命令吗?,第1张

你建立个表2个字段,一个自增,一个你写的这个3,6,35什么的,你给他插入进去,他肯定是按你的顺序排列了,然后你在根据你原来这个表的数据关联新表,然后更新,不就可以了,,,唯一就是你看你这些数字有没有重复的了,,,没重复的这样肯定可以,,

建立一个更新查询,假设分类表删掉的记录ID是从5~50,而目前这个表ID字段的最大值是500了,接下来,新添加的记录ID应该是501~546,那么在关联表里,更新字段为〔关联ID]=〔关联ID〕+496,更新查询代码如下:
UPDATE
关联表
SET
关联表关联ID
=
[关联ID]+496
WHERE
(([关联ID]>4
And
[关联ID]<50));
试一试。
你在这个库里新建一个查询,在SQL视图里,把我上面的代码复制进去,再改成自己的表名和字段名。

两个方法:
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)
)
现在想让C_ID自增一。
2首先创建一个oracle的sequence,sql语句如下:
create sequence 序列名
increment by 1
start with 1
maxvalue 999999999
cycle;
建立一个最小为1,最大为999999999的一个序列号会自动循环的序列
下面的sequence,如下:
CREATE SEQUENCE "FLOWCAL""SEQ_USERINFO"
MINVALUE 0
MAXVALUE 9999999999999999999999999999
INCREMENT BY 1
START WITH 24
CACHE 20
ORDER
CYCLE ;

3通过序列名nextval实现插入时,字段的自增一
当向表中插入数据时,SQL语句写法如下:
SQL> insert into 表名 values(,列1值,列2值,);
"序列名"可以替换为自己需要的名字
下面insert语句:
insert into T_USERINFO values(SEQ_USERINFONEXTVAL,'111','11','11','11','11')


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

原文地址: https://outofmemory.cn/yw/13385558.html

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

发表评论

登录后才能评论

评论列表(0条)

保存