HsqlDB数据库自增长的两种方式 原创 2022-09-23 18:43:23.0 阅读(1317)次 HsqlDB数据库自增长的两种方式:一种是IDENTITY,一种是使用SEQUENCE序列;下面介绍一下这两种方式,包括insert后如何获取最后的自增id; 自增: CREATE TABLE mt_data_source ( id INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY, name varchar(255) DEFAULT NULL, ); 序列自增: CREATE SEQUENCE seq CREATE TABLE star (id INTEGER GENERATED BY DEFAULT AS SEQUENCE seq PRIMARY KEY, firstname VARCHAR(20), lastname VARCHAR(20)) 重设自增长有两种方式: IDENTITY: ALTER TABLE mytable ALTER COLUMN id GENERATED ALWAYS AS IDENTITY (START WITH 20000) SEQUENCE: ALTER TABLE mytable ALTER COLUMN id GENERATED BY DEFAULT AS SEQUENCE seq 重新设置自增的起始值: IDENTITY: ALTER TABLE mytable ALTER COLUMN id RESTART WITH 1000 SEQUENCE: ALTER TABLE mytable ALTER COLUMN id SET INCREMENT BY 5 插入数据时获得最后插入的值(需要在同一事务),如下star的id为自增 IDENTITY方式: INSERT INTO star (id, firstname, lastname) VALUES (DEFAULT, 'Felix', 'the Cat') INSERT INTO movies (starid, movieid, title) VALUES (IDENTITY(), 10, 'Felix in Hollywood') 或者用call IDENTITY()来获取star表最后写入的id 表字段使用SEQUENCE序列的方式: INSERT INTO star (id, firstname, lastname) VALUES (DEFAULT, 'Felix', 'the Cat') INSERT INTO movies (starid, movieid, title) VALUES (CURRENT VALUE FOR seq, 10, 'Felix in Hollywood') 或者用select CURRENT VALUE FOR seq来获取star表最后写入的id,其中seq为序列名 jdbc hsqldb 上一篇:idea中运行springboot jsp工程找不到页面的问题 下一篇:设置jar包启动的JDK来选择要运行的jdk版本
相关文章 使用hsqldb工具连接嵌入式数据库hsqldb(1591) HsqlDB如何修改字段定义(941) HsqlDB多事务并发读写控制(1082) postgresql jdbc driver驱动连接属性列表(2359) springboot项目初始化druid连接池时报错java.lang.NullPointerException: null(5996) Parameter index out of range (1 > number of parameters, which is 0(1864) 推荐文章 elasticsearch7.1保存时报错: Validation Failed: 1: type is missing;(7) 聊聊数据保存到MySQL后数据乱码的问题(1) solr时区设置解决时间多8小时问题(1) linux下MySQL5.7.18安装过程(1) linux下MySQL5.6.2安装过程(1) spring cloud+feign+mybatis中使用seata0.9实现分布式事务(7) spring cloud gateway报错Only one connection receive subscriber allowed(82) spring cloud中Feign调用诡异报错MethodNotAllowed: status 405 reading(116) 使用spring4实现websocket连接(1) jquery对象与dom对象互转(1) 热门文章 clickhouse如何删除数据(40016) clickhouse清空删除表数据(18228) redis报错远程主机强迫关闭了一个现有的连接以及超时问题(16275) clickhouse执行查询内存超出限制问题:Memory limit (total) exceeded(14617) elasticsearch7.1保存时报错: Validation Failed: 1: type is missing;(11061) clickhouse如何修改字段名(9931) druid执行clickhouse报错:sql injection violation, dbType clickhouse , druid-version 1.2.2, syntax error(8915) Es创建索引mapping时报错:Root mapping definition has unsupported parameters: [doc(8786) Clickhouse批量删除分区(8708) postgresql生成uuid(8257) 标签列表 java java java java java java java基础 微服务 异常处理 mysql clickhouse clickhouse clickhouse clickhouse clickhouse spring cloud spring boot linux elasticsearch feign jdbc spring js docker postgresql solr seata nginx maven gateway hsqldb 数据库 架构 大数据分析 分布式事务 redis canal dubbo hadoop 消息队列 win10 websocket springmvc git html select2 mybatis jenkins rocketmq quartz activemq 数据库集群 ajax bat 电脑 笔记 eclipse 设计模式 阿里云 github freemarker jvm jquery javamail redission redission对象 hystrix http hibernate springmail svn ubuntu ueditor xheditor zookeeper 分布式 小程序 开发工具 gitlab