【数据库_Postgresql】数据库主键自增长之加序列和不加序列2种方法
将表的主键进行序列增加之后可以在数据库层面自动主键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种方法的更多相关文章
- Statement和PreparedStatement的特点 MySQL数据库分页 存取大对象 批处理 获取数据库主键值
1 Statement和PreparedStatement的特点 a)对于创建和删除表或数据库,我们可以使用executeUpdate(),该方法返回0,表示未影向表中任何记录 b)对于创建和 ...
- 数据库主键到底是用自增长(INT)好还是UUID好
其实针对使用自增长还是UUID,大家讨论最多的就是速度和存储空间,这里我加入了安全性和分布式,具体对比如下: 使用自增长做主键的优点:1.很小的数据存储空间2.性能最好3.容易记忆使用自增长做主键的缺 ...
- SQL 数据库主键 ,外键
主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...
- c#生成唯一编号方法记录,可用数据库主键 唯一+有序
数据库主键目前主要有两种: a.自增数值型 优:占用空间小,插入快,有序对索引友好,易懂 缺:多数据库迁移会有重复键值问题,有可能爆表 b.GUID 优:多数据库唯一 缺:占用空间大,无序对索引不友好 ...
- 使用Hashids来保护你的数据库主键
为什么要保护数据库主键? 数据库主键一般是有序自增主键,极易被爬虫抓取数据,作为应用开发者,这是不应该的,你辛辛苦苦收集的数据转眼之间被其他人给抓取了,是不是很大的损失? Hashids的介绍 gen ...
- 数据库主键跟外键+修改mysql的密码
update myspl.user set password=PASSWORD(设置的密码) where user='root'; 如果修改错误:先执行use mysple;再重复上面的代码. 一. ...
- 数据库主键ID生成策略
前言: 系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,下面介绍一些常见的ID生成策略. Sequence ID UUID GUID COMB Snowflake 最开始的自增ID为了实现分库 ...
- C#连接mysql数据库插入数据后获取自增长主键ID值
From: http://blog.csdn.net/zbc496218/article/details/51082983 MySqlConnection conn = new MySqlConnec ...
- MySQL数据库主键设计原则
目录 1. 主键定义... 5 2. 主键设计原则... 5 2.1 确保主键的无意义性... 5 2.2 采用整型主键... 5 2.3 减少主键的变动... 5 2.4 避免重复使用主键... 6 ...
随机推荐
- 微信小程序点击按钮,修改状态
WXML中: <view wx:if="{{orderstate}} = '待送检' " data-no="{{orderstate}}" bindtap ...
- Microsoft .NET Framework 4 安装 1603错误的解决
首先找到 C:\Windows\SoftwareDistribution\Download"这个文件夹,把里面的东西全删除了,然后把你更新失败的 NET Framework 4卸载了,然后 ...
- git clone的时候报error: RPC failed; result=18错误
因业务需求,需要把内网gitlab仓库的地址对外网访问,在gitlab前端配置了一个nginx代理服务器,来实现需求,可以在git clone的时候报error: RPC failed错误 [root ...
- 新技能get,使用PHPStorm的deployment工具
1. 工具栏 Tools - Deployment - Configuration 2. 添加一个服务端的配置信息 type 类型可以选择:FTP.local等. 填完信息别忘了点"Test ...
- 【JUC源码解析】CyclicBarrier
简介 CyclicBarrier,一个同步器,允许多个线程相互等待,直到达到一个公共屏障点. 概述 CyclicBarrier支持一个可选的 Runnable 命令,在一组线程中的最后一个线程到达之后 ...
- Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- loadrunner-录制脚本,设置代理,参数化,校验点,关联
详细记录一个脚本制作过程相关知识点 制作脚本 因为要做网页所以选择web协议,根据实际需要选择 选择浏览器地址,打开的网页网址,脚本存储地址以及初始化脚本,初始化脚本的目的是执行用例后不再执行此脚本中 ...
- Unity ScriptableObject自定义属性显示
1. 继承Editor,重写OnInspectorGUI方法 Editor官方文档 需求 将TestClass中intData属性和stringData按指定格式显示. 实现 定义一个测试类TestC ...
- 面向对象编程(OOP)思想小结
Concepts 类(class):对我们要解决问题的抽象,比如建造房子的蓝图:但实现机制上来讲,类是根据蓝图构建而成的,存储在内存中的,用来表示对象的数据. 对象(object):根据类构建的实体, ...
- Java fluent风格(转载)
转载:java Fluent风格 一.我们先写一个通常的,即不使用fluent风格 1.实体类 package com.xbq.demo.stu; /** * @ClassName: Student ...