将表的主键进行序列增加之后可以在数据库层面自动主键id增长

方法如下:先建序列,然后建表关联id主键,然后添加语句,不用考虑id主键

DROP SEQUENCE
IF EXISTS "public"."sp_warehouse_id_seq"; CREATE SEQUENCE "public"."sp_warehouse_id_seq" INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1; DROP TABLE
IF EXISTS "public"."sp_warehouse"; CREATE TABLE "public"."sp_warehouse" (
"id" NUMERIC (10) DEFAULT nextval(
'sp_sn_main_id_seq' :: regclass
) NOT NULL,
"whid" VARCHAR (20) COLLATE "default",
"whname" VARCHAR (50) COLLATE "default",
"province" VARCHAR (20) COLLATE "default",
"city" VARCHAR (20) COLLATE "default",
"district" CHAR (20) COLLATE "default",
"addr" TEXT COLLATE "default"
) WITH (OIDS = FALSE); INSERT INTO "public"."sp_warehouse" ( "whid",
"whname",
"province",
"city",
"district",
"addr"
)
VALUES
(
'whid1',
'ads',
'dsf',
'sdf',
'dsf ',
'sdf'
);

不用序列的话可以在sql中id部分加一句子查询,例如:

<insert id="insertSelective" parameterType="java.util.Map">

        INSERT INTO sp_sn_main
<trim prefix="(" suffix=")" suffixOverrides=",">
snmasterid,
<if test="snnumber != null">
snnumber,
</if>
<if test="whid != null">
whid,
</if>
<if test="itemnumber != null">
itemnumber,
</if>
<if test="inboundnumber != null">
inboundnumber,
</if>
<if test="outboundnumber != null">
outboundnumber,
</if>
<if test="inbounddate != null">
inbounddate,
</if>
<if test="outbounddate != null">
outbounddate,
</if>
<if test="employeeid != null">
employeeid,
</if>
<if test="status != null">
status,
</if> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> (
(
SELECT
MAX (snmasterid)
FROM
sp_sn_main
) + 1
),
<if test="snnumber != null">
#{snnumber,jdbcType=VARCHAR},
</if>
<if test="whid != null">
#{whid,jdbcType=VARCHAR},
</if>
<if test="itemnumber != null">
#{itemnumber,jdbcType=VARCHAR},
</if>
<if test="inboundnumber != null">
#{inboundnumber,jdbcType=VARCHAR},
</if>
<if test="outboundnumber != null">
#{outboundnumber,jdbcType=VARCHAR},
</if>
<if test="inbounddate != null">
#{inbounddate,jdbcType=DATE},
</if>
<if test="outbounddate != null">
#{outbounddate,jdbcType=DATE},
</if>
<if test="employeeid != null">
#{employeeid,jdbcType=VARCHAR},
</if>
<if test="status != null">
#{status,jdbcType=VARCHAR},
</if> </trim>
</insert>

【数据库_Postgresql】数据库主键自增长之加序列和不加序列2种方法的更多相关文章

  1. Statement和PreparedStatement的特点 MySQL数据库分页 存取大对象 批处理 获取数据库主键值

    1 Statement和PreparedStatement的特点   a)对于创建和删除表或数据库,我们可以使用executeUpdate(),该方法返回0,表示未影向表中任何记录   b)对于创建和 ...

  2. 数据库主键到底是用自增长(INT)好还是UUID好

    其实针对使用自增长还是UUID,大家讨论最多的就是速度和存储空间,这里我加入了安全性和分布式,具体对比如下: 使用自增长做主键的优点:1.很小的数据存储空间2.性能最好3.容易记忆使用自增长做主键的缺 ...

  3. SQL 数据库主键 ,外键

    主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...

  4. c#生成唯一编号方法记录,可用数据库主键 唯一+有序

    数据库主键目前主要有两种: a.自增数值型 优:占用空间小,插入快,有序对索引友好,易懂 缺:多数据库迁移会有重复键值问题,有可能爆表 b.GUID 优:多数据库唯一 缺:占用空间大,无序对索引不友好 ...

  5. 使用Hashids来保护你的数据库主键

    为什么要保护数据库主键? 数据库主键一般是有序自增主键,极易被爬虫抓取数据,作为应用开发者,这是不应该的,你辛辛苦苦收集的数据转眼之间被其他人给抓取了,是不是很大的损失? Hashids的介绍 gen ...

  6. 数据库主键跟外键+修改mysql的密码

    update myspl.user set password=PASSWORD(设置的密码)  where user='root'; 如果修改错误:先执行use mysple;再重复上面的代码. 一. ...

  7. 数据库主键ID生成策略

    前言: 系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,下面介绍一些常见的ID生成策略. Sequence ID UUID GUID COMB Snowflake 最开始的自增ID为了实现分库 ...

  8. C#连接mysql数据库插入数据后获取自增长主键ID值

    From: http://blog.csdn.net/zbc496218/article/details/51082983 MySqlConnection conn = new MySqlConnec ...

  9. MySQL数据库主键设计原则

    目录 1. 主键定义... 5 2. 主键设计原则... 5 2.1 确保主键的无意义性... 5 2.2 采用整型主键... 5 2.3 减少主键的变动... 5 2.4 避免重复使用主键... 6 ...

随机推荐

  1. [CF888E] Maximum Subsequence 序列分治

    早期作品,不喜轻喷. LG传送门 序列分治板子题. 切这道题用了好长时间,所以想发篇题解作为纪念 . 首先,我们认真观察题目数据(面向数据做题是个好习惯),发现题目的\(n\)竟然只有\(35\),我 ...

  2. Scrapy爬取美女图片第四集 突破反爬虫(上)

     本周又和大家见面了,首先说一下我最近正在做和将要做的一些事情.(我的新书<Python爬虫开发与项目实战>出版了,大家可以看一下样章) 技术方面的事情:本次端午假期没有休息,正在使用fl ...

  3. python全栈开发-面向对象-初识

    python_16_day 函数总结: https://www.processon.com/view/link/5b718274e4b0555b39e1055f 面向过程的程序设计的核心是过程(流水线 ...

  4. katalon系列十一:Katalon Studio在Jenkins持续集成

    以下在WIN10上运行正常.安装准备:一.安装Katalon Studio二.安装Jenkins三.获取Katalon命令行运行命令:点击工具栏的‘Build CMD’按钮,选择测试集以及其他选项:选 ...

  5. Openwrt之移动硬盘ext3/ext4格式化工具

    在给openwrt挂载移动硬盘的时候,最好是ext3/ext4方式,但在windows下苦于无法找到合适的工具进行格式化. 踅摸了半天,终于找到了它:MiniTool Partion  Wizard ...

  6. Google Chrome插件分享

    前言 浏览器是大家日常使用最多的工具之一,对于程序员来说,Google Chrome浏览器当然是大家优选的最爱之一.面对Chrome丰富的插件真的是爱不释手,如何把自己的Chrome调教成自己心仪的样 ...

  7. Centos7部署Kubernetes集群(单工作节点)+配置dashboard可视化UI

    目标:docker+kubernetes+cadvosor+dashboard 一:物理硬件 两台虚拟机(centos7):一台做为主节点(master),一台做为工作节点(node) [root@M ...

  8. 【python 3.6】调用另一个文件的类的方法

    文件1:test12.py 文件2:test13.py 文件1 如下: #!/usr/bin/python # -*- coding: utf-8 -*- ''' ''' class abcd(obj ...

  9. linux 下 mysql安装和配置

    最近在学习R语言,看到R与数据库交互这一部分,就自己动手实践了一下,数据库选择的是mysql,主要记录下linux下怎么安装mysql. 网上的很多资料都有相关的文章,这里只是记录下自己安装过程中遇到 ...

  10. tendermint 跟tikv结合

    import ( "fmt" "github.com/allegro/bigcache" "github.com/kooksee/usmint/cmn ...