最近公司使用到了PostgreSql,哈哈,这个SQL之前基本上没有用过,既然公司使用到了,那就学习一下吧,记一篇小笔记;

什么是PostgreSql:https://www.postgresql.org/about/

有关PostgreSql序列使用:https://www.cnblogs.com/alianbog/p/5654604.html

按照以往Oracle建表的流程,我们来新建表,并且向表中导入数据。

1.创建Book表

CREATE TABLE book(
id INTEGER PRIMARY KEY ,
name CHARACTER VARYING(50),
price DOUBLE PRECISION,
author CHARACTER VARYING(20)
);

PRIMARY KEY 将id设置为主键;

数据类型
类型名称    别名    描述
integer    int,int4    有正负之分的4字节整数
character varying [ (n) ]    varchar [ (n) ]    
可变长度的字符串

double precision    float8    双精度浮点数(8字节)
更多类型请参考文档:https://www.postgresql.org/docs/9.3/static/datatype.html

2.创建自动增长序列

CREATE SEQUENCE book_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;

参数    描述
START WITH    设置起始值,允许序列从任何地方开始
INCREMENT BY    设置增量,指定在哪个值得基础上创建新值,正值将产生递增序列,负值将产生递减序列;默认值为1。
NO MINVALUE    设置序列可以生成的最小值,如果未指定NO MINVALUE,对于升序和降序序列,默认值分别为1和。
NO MAXVALUE    设置序列可以生成的最大值,如果未指定此子句,将使用默认值,对于升序和降序序列,默认值为和-1。
CACHE    设置高速缓存,要分配多少序列号并将其存贮在内存中方便更快的访问,最小值为1,默认值也是1。
3.为book表添加自动增长序列

ALTER TABLE book ALTER COLUMN id SET DEFAULT nextval('book_id_seq');

4.向book表Insert数据

INSERT INTO public.book VALUES (nextval('book_id_seq'),'《本色》',30.5,'乐嘉');
INSERT INTO public.book VALUES (nextval('book_id_seq'),'《平凡世界》',90.5,'路遥');
INSERT INTO public.book VALUES (nextval('book_id_seq'),'《Java编程思想》',60.5,'詹姆斯·高斯林');
INSERT INTO public.book VALUES (nextval('book_id_seq'),'《Web高级编程》',50.5,'李三');

5.查询book表中数据

SELECT * FROM public.book;

查询结果:

6.相关序列操作:
--查询序列 (每查询一次,序列就做了一次+1操作,即查询下一次的value)

SELECT nextval('book_id_seq');

--移除序列

DROP SEQUENCE 'book_id_seq';

---------------------
作者:搬砖建高楼
来源:CSDN
原文:https://blog.csdn.net/qq_37464248/article/details/82769868
版权声明:本文为博主原创文章,转载请附上博文链接!

PostgreSql 使用自定义序列(Sequence)向表插入数据的更多相关文章

  1. sql实现同时向主表和子表插入数据方法

    使用sql语句实现同时向主表和子表插入数据方法: Oracle: -- oracle创建sequence create sequence SEQ_test minvalue 1 maxvalue 99 ...

  2. 如何往有自增标识字段的表插入数据时,同时给自增标识字段插入值呢,在Inset Into语句前后加上SQL语句:SET IDENTITY_INSERT TableName ON和SET IDENTITY_INSERT TableName OFF

    当要往有设置自增标识字段的表插入数据,并希望同时设置好自增字段的值时,可以在insert into 的SQL语句前后分别加上一句sql语句,SET IDENTITY_INSERT TableName  ...

  3. 向oracle中的表插入数据的方法

    向oracle中的表插入数据的方法有以下几种: 假设表名为User 第一种方法:select t.*,rowid from User t;-->点击钥匙那个标记就可向表中添加数据 第二种方法:s ...

  4. SQL-Oracle存储过程-循环A表,向B表插入数据

    --存储过程,查询A表,向B表插入数据 create or replace procedure prc_sg_sjtj_config(p_flag out varchar2) IS BEGIN FOR ...

  5. python数据库操作常用功能使用详解(创建表/插入数据/获取数据)

    实例1.取得MYSQL版本 复制代码 代码如下: # -*- coding: UTF-8 -*-#安装MYSQL DB for pythonimport MySQLdb as mdbcon = Non ...

  6. 【JDBC】向数据表插入数据时,自动获取生成的主键

    数据表设计时,一般都会有一个主键(Key)(自己指定),有时也可以使用联合主键: 有许多数据库提供了隐藏列为表中的每行记录分配一个唯一键值(如:rowid): 当我们没有指定哪一列作为主键key时,数 ...

  7. inserted触发器,一张表插入数据时,同时向另外一张表插入数据

    有时候,一个服务器上有多个数据库,需要向其中一个数据库的表中插入数据时, 同时向另外一个数据的表里插入数据. 可以利用触发器和同义词(建立同义词的方法省略), 在一个数据库的表里插入数据时,同时向另外 ...

  8. mysql存储过程批量向表插入数据

    业务需要,往某个表中批量插入数据,使用存储过程插入 首先,要建立一张mysql表,表明为phone_number, 三个字段,id 自增,number 就是要插入的表格,is_used 表示十分已经使 ...

  9. java实现mysql数据库从一张表插入数据到另一张表

    创建两张表: create table employee( id ), name ), email ), gender ) ); create table copyEmployee( id ), na ...

随机推荐

  1. Java基础 FileInputStream/ FileOutputStream / 字节输入流 字节输出流实现文件的复制

    FileInputStream/FileOutputStream的笔记: /**(FileInputStream/FileOutputStream四个步骤: ①声明②加载地址③read/write④c ...

  2. 使用Python进行3DES加密-pyDes

    pyDes.py源码 ############################################################################# # Documenta ...

  3. (二)AppScan使用教程

    1.新建扫描:一般选择 常规扫描 2.选择扫描的平台:web或app 3.扫描配置向导 ①配置URL和服务器 ②配置登录管理 在扫描的过程中,可能会不小心碰到退出按钮导致Appscan注销.因此,要登 ...

  4. ComboGrid二级联动以及给二级联动赋默认值

    <input name="buyStatus" id="upbuyStatus" style="width: 100%;height: 85%& ...

  5. ASP.Net参数传递小结

    同一页面.aspx与.aspx.cs之间参数传递 1. .aspx.cs接收.aspx的参数:由于.aspx和.aspx.cs为继承关系,所以.aspx.cs可以直接对.aspx中的ID进行值提取,具 ...

  6. 使用Eclipse进行远程调试(转)

    做开发好多年了,Debug大家肯定都不陌生,绝对称得上是家常便饭了.博主虽不敢妄下断言,但是这里也猜一下,肯定有很多人都没有使用过Remote Debug(远程调试).说来惭愧,博主也是工作了3年才用 ...

  7. Vivado RAM使用

    RAM使用的几点说明: 1,RAM的读写位宽可以不同,举例:写的位宽为8(1Byte),读的位宽为1(1bit),那么读的地址就变成了写地址的8倍,即位宽增加3bit.

  8. MongoDB 比较适用哪些业务场景

    转载自:https://www.cnblogs.com/williamjie/p/10416294.html 在云栖社区上发起了一个 MongoDB 使用场景及运维管理问题交流探讨的技术话题,有近50 ...

  9. tinymce实现ctrl+v粘贴word图片并上传

    tinymce是很优秀的一款富文本编辑器,可以去官网下载.https://www.tiny.cloud 这里分享的是它官网的一个收费插件powerpaste的旧版本源码,但也不影响功能使用. http ...

  10. 线程的分离状态 detached joinable

    转自  http://blog.chinaunix.net/uid-26983585-id-3315953.html 其实在写上一篇日志的时候,由于我把创建线程的返回值的判断条件写错了,程序每次运行的 ...