精华内容
下载资源
问答
  • 数据库id自动增长
    千次阅读
    2021-11-09 14:57:21

    我们在项目中遇到oracle数据库需要进行对表增加自增字段,简单的分为两步:创建序列和创建触发器,详细步骤如下:

    1、我们先创建一张测试表,进行测试:

    2、创建序列,如下序列从1开始每次增加1最大为999999999:

    create sequence ry_id_seq --(序列名)
    increment by 1--(每次增加1)
    start with 1--(从1开始)
    maxvalue 999999999--(到这结束);

    3、查询序列:序列查询一次就会自增一次,每次查询都比上次多1

    select ry_id_seq(序列名).nextval from dual;

    4、删除序列:测试序列创建成功后,如果经过查询,那么序列再进行使用序列开始就不在是1了,那么我们可以删除该序列重新创建新的序列进行正式使用

    DROP SEQUENCE seq_xx(序列名);

    5、创建触发器:触发器当我们要给表插入数据时,该数据为空时,触发器会调用序列进行填补该数据

    create trigger ry_id_tri(触发器名) before
    insert on info_ry_staff(表名) for each row
    when (new.id is null) --当id为空插入时
    begin
    select ry_id_seq(序列).nextval into:new.id from dual;
    end;

    6、序列和触发器创建好之后,我们插入数据进行测试,如下测试结果:

    创建好触发器后我们试试自增序列是否设置成功,如上图,我们对测试表进行数据插入,只插入name,id会对应填充并增加数值

    7、删除触发器:如果不想使用了可以用下面命令进行删除触发器

    DROP TRIGGER PERSON_trigger

    特别提醒:
    一个序列只能一个表用,触发器针对单独表,使用序列和触发器可以创建表的自增ID

    更多相关内容
  • 数据库中表id增长

    2022-03-12 12:27:45
    alter table app01_useinfo drop id; alter table app01_useinfo add id int(3) not null primary key auto_increment first;

    alter table app01_useinfo drop id;

    alter table app01_useinfo add id int(3) not null primary key auto_increment first;

    展开全文
  • 一口气说出4种主流数据库ID增长,面试官懵了

    千次阅读 多人点赞 2022-03-15 16:53:33
    在往数据库中插入数据的时候,数据库自动为每条数据生成一个递增的ID,本文做了详细的说明。

    📢📢📢📣📣📣
    哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
    一位上进心十足的【大数据领域博主】!😜😜😜
    中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
    擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
    ✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
    ❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

    前言

    数据库自增长ID,不需要设置和绑定 ID 数据列。在往数据库中插入数据的时候,数据库会自动为每条数据生成一个递增的ID,本文做了详细的说明。

    自增长ID的实现主要依赖数据库的设置,需要先在数据表中创建对应的自增ID字段。
    具体创建方式每种数据库可能会有区别,本文将简单介绍几种常见数据库的自增id设置方式。

    ⛳️ 1.SQL Server

    在这里插入图片描述

    🌈 1.1 图形化界面创建

    假设在 SQL Server 数据库中存在下面一张数据表,
    我们需要将其 ID 列实现自增长,就可以在列属性中设置是标识,修改标识增量和标识种子,

    ✨ ✨✨ ✨✨ ✨ 如下图:

    在这里插入图片描述

    🌈 1.2 SQL语句创建

    也可以使用 SQL 语句来创建,identity(1,1)指定 ID 由 1 开始,每次增长 1.

    create table jeames(
    id int identity(1,1) primary key,
    kh varchar(20)
    )

    ⛳️ 2.MySQL

    在这里插入图片描述

    🌈 2.1 auto_increment自增ID

    基于数据库的auto_increment自增ID来实现

    在这里插入图片描述

    ##表中插入数据
    mysql> insert into TEST_ID(value) VALUES (‘IT’);
    mysql> insert into TEST_ID(value) VALUES ('CSDN);
    mysql> insert into TEST_ID(value) VALUES ('IT);

    在这里插入图片描述

    🌈 2.2 修改自动增长起始值

    mysql> alter table TEST_ID AUTO_INCREMENT=100
    mysql> insert into TEST_ID(value) VALUES (‘001’);
    mysql> insert into TEST_ID(value) VALUES (‘002’);

    在这里插入图片描述

    ⛳️ 3.Oracle

    在 Oracle 数据库中,提供了序列的功能,可以通过 Oracle 的序列及触发器,实现主键的自增长。

    🌈 3.1 创建序列

    CREATE SEQUENCE seq_name
    INCREMENT BY 1
    START WITH 1
    NOMAXVALUE
    NOCYCLE
    CACHE 10;

    在这里插入图片描述

    🌈 3.2 创建触发器

    ##创建表
    create table jem_db(id int,name varchar(30));

    ##创建触发器
    CREATE OR REPLACE TRIGGER TRG_name
    BEFORE INSERT ON jem_db
    FOR EACH ROW
    BEGIN
    SELECT seq_name.nextval INTO :new.ID FROM dual ;
    END;

    在这里插入图片描述

    ##插入数据验证
    insert into jem_db (name) values(‘IT邦德’);
    insert into jem_db (name) values(‘CSDN’);
    insert into jem_db (name) values(‘热搜榜’);
    select * from jem_db;

    在这里插入图片描述

    ⛳️ 4.postgreSQL

    PostgreSQL 使用序列来标识字段的自增长
    CREATE TABLE runoob
    (
    id serial NOT NULL,
    alttext text,
    imgurl text
    )
    SMALLSERIAL、SERIAL 和 BIGSERIAL 范围:

    在这里插入图片描述
    ✨ ✨✨ ✨✨ ✨ 实例

    假定我们要创建一张 COMPANY 表,并创建下面几个字段:

    🐴🐴 第一步:登陆PG
    在这里插入图片描述
    🐴🐴 第二步:创建表

    CREATE TABLE COMPANY(
    ID SERIAL PRIMARY KEY,
    NAME TEXT NOT NULL,
    AGE INT NOT NULL,
    ADDRESS CHAR(50),
    SALARY REAL
    );

    在这里插入图片描述
    🐴🐴 第三步:现在往表中插入几条记录

    INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
    VALUES ( ‘Paul’, 32, ‘California’, 20000.00 );
    INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
    VALUES (‘Allen’, 25, ‘Texas’, 15000.00 );
    INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
    VALUES (‘Teddy’, 23, ‘Norway’, 20000.00 );
    INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
    VALUES ( ‘Mark’, 25, 'Rich-Mond ', 65000.00 );
    INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
    VALUES ( ‘David’, 27, ‘Texas’, 85000.00 );
    INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
    VALUES ( ‘Kim’, 22, ‘South-Hall’, 45000.00 );
    INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
    VALUES ( ‘James’, 24, ‘Houston’, 10000.00 );

    在这里插入图片描述

    🐴🐴 查看 COMPANY 表的记录如下
    在这里插入图片描述
    大家点赞、收藏、关注、评论啦 👇🏻👇🏻👇🏻微信公众号👇🏻👇🏻👇🏻

    展开全文
  • 请看下方 重新设计表 修改字段id 的类型,由原来的 int 类型 改为 bigint 类型 下面继续插入数据 可以了,下面查看下数据 看一下mysql数据类型范围 由此,我们得知, 自增字段 id 数据类型为 int 时,用完自增id,...

    在某公众号看到这个截图,就这


    (2^31)-1= 2147483647

     

     

     

     

     

     

     

    insert into tb_demo(name) values("张三3")
    > 1062 - Duplicate entry '2147483647' for key 'PRIMARY'
    > 时间: 0s
    

    插入失败

     


    自增id用完了,就插入不进去数据了,这个时候如何解决呐?请看下方


    重新设计表

     

    修改字段id 的类型,由原来的 int 类型 改为 bigint 类型

     

    下面继续插入数据

    可以了,下面查看下数据


    看一下mysql数据类型范围 

     

     

    由此,我们得知,

    自增字段 id 数据类型为 int 时,用完自增id,插入数据会失败;

    但是,有办法解决,那就是修改字段 id 数据类型为 bigint

     


    多说一点,

    自增字段id 数据类型为 bigint ,用完自增id 怎么办?

    有知道的欢迎下方评论区留言!

    展开全文
  • 在使用数据库的时候,难免要在使用过程中进行删除的操作,如果是使用int类型的字段,令其自增长,这是个最简单的办法,但是后果会有些不是你想要的!看下这个Demo:  1.建立这样的简单的表Test.    2.设置字段id的自增. ...
  • 重置mysql数据库id自增表的自增id,针对删除后id不连续问题
  • 数据库主键id从1重新递增(重置)

    千次阅读 2021-07-08 16:23:23
    某些时候我们希望我们数据库主键id能重新变得有规律,方法如下 : 警告!!! 该方法属于重置该表,会把你的数据删除,谨慎使用,最好提前备份数据,表更新好以后再拷贝进去就好 解决方法 拷贝数据,删除原始数据,...
  • 数据库主键id自增

    万次阅读 2019-04-23 18:23:49
    数据库主键id递增 如果使用工具的话在设计表时为主键id勾选上自增选项 mysql mysql: create table users(id int auto_increment primary key not null,name varchar(10)); sql server sql server: create table ...
  • 操作 数据库数据 删除了7和8之后添加了一条新数据 问题 删除记录后的记录还是递增的,如何重新从1开始增加呢? 解决 truncate table 表名; 注意 此语句会把表中数据清空
  • 如何使数据库中的自增id重置为1

    千次阅读 2021-05-03 21:31:53
    如何使数据库中的自增id重置为1 当我们在创建表时,喜欢把某些字段设置为自增项,方便我们对表的操作 但是在对一个表进行多次的测试后,自增项就会变得很大,如100+,甚至几百+,但当我们把表中数据清空后,重新插入...
  • postgresql数据库表实现ID自增

    万次阅读 2019-07-19 16:45:16
    postgresql数据库可以创建主键,但是没有像mysql那样直接指定主键自增的auto_...序列可以实现自动增长,而且表字段可以指定默认值,因此可以通过指定默认值的方式来实现主键自增。 postgresql提供了三种seri...
  • sql语句查询数据库中的表名/列名/主键/自动增长值实例,需要的朋友可以参考下
  • 数据库id增长的弊端分析

    千次阅读 2018-04-24 17:48:41
    1、数据导出再导入很可能发生变化,因此并...2、增长是从1开始的,有些数据的id是不可能是个位数;3、分库分表是不能用自增长的。为此我们可以采取以下几种解决方案:1、时间+随机数2、采用redis的incr()方法产生id...
  • Oracle数据库创建表tuser设置主键自动增长,先创建表,然后创建基于该表的队列。
  • oracle数据库id为uuid类型时自动生成id的工具类,不再依赖sequence自增长
  • PostgreSQL数据库 实现ID自增

    千次阅读 2021-12-14 14:21:11
    PostgreSQL 使用序列来标识数据库的自增长,数据类型有 smallserial、serial 和 bigserial。 create table tb_user_test(id SERIAL,name vatchar); SMALLSERIAL、SERIAL 和 BIGSERIAL 范围: 虚假类型 存储大小...
  • 数据库主键到底是用自增长(INT)好还是UUID好? 使用自增长做主键的优点: 1、很小的数据存储空间 2、性能最好 3、容易记忆使用自增长做主键的缺点: 1、如果存在大量的数据,可能会超出自增长的取值范围 2、很难...
  • mysql实现id自动增长

    千次阅读 2017-05-07 22:41:46
    ALTER TABLE user modify Id bigint(20) auto_increment; user代表用户表
  • 数据库id 数据类型为bigint 实体类中id 数据类型为Long 情况一:   没有更新maven 情况二:   数据库自动递增没有修改,将其修改为原序即可。 情况三:   将id自动递增取消勾选,然后保存,运行一下...
  • 数据库主键id使用自动增长的坏处

    千次阅读 2016-09-18 21:03:07
    1. 程序后台添加测试 2. 旧数据导入 3. 数据库迁移 4. 缓存 (如,两个库中id都为2时,缓存的时候会覆盖)
  • 关于MySQL自增id不连续问题

    千次阅读 2022-01-18 16:20:00
    参考链接0:id不连续重排
  • 数据库ID怎么设置自动增长

    千次阅读 2014-05-14 14:48:16
  • 解决sqlserver 2012 重启服务ID自动增长1000的问题
  • 金仓kingbase数据库设置自增长

    千次阅读 2022-03-16 17:51:38
    通过序列设置自增长 1、创建自增序列 CREATE SEQUENCE seq_test START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; 2、使用自增序列 create table t_test( id int default nextval(‘seq_test’) ...
  • 关于数据库中的主键的自动增长

    千次阅读 2018-11-08 19:44:15
                  &... Mysql、SqlServer、Oracle主键自动增长的设置 ...1、把主键定义为自动增长
  • mysql数据库自动添加编号

    千次阅读 2021-01-31 06:23:06
    创建表时,name varchar(6) not null,2.unique 唯一性约束①约束唯一标识数据库表中的每条记录②unique和primary key都为数据提供了唯一性约束③primary key 拥有自动定义的Unique约束④注意:每个表中只能有一个...
  • //添加用户public User add(User user) {Connection con = null;PreparedStatement stm = null;...try{// 与数据库建立连接con = JDBCUtils.getConnection();//sql语句String sql = "insert int...
  • Navicat重新使自增id从1开始

    千次阅读 2022-04-11 16:03:49
    1.取消主键自动递增 2.点击保存 3.重新勾选自动递增 4.再次点击保存,插入数据,成功
  • 1、把主键定义为自动增长标识符类型 在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如: create table customers(id int auto_increment primary key notnull, name varchar(15))...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 115,752
精华内容 46,300
关键字:

数据库id自动增长