PostgreSQL 序列绑定字段与不绑定字段的区别说明
序列绑定字段与不绑定字段的区别
绑定字段
构造数据
drop sequence if exists test_id_seq; create sequence test_id_seq; drop table if exists test; create table test(id int default nextval('test_id_seq'), name text); alter sequence test_id_seq owned by test.id;
测试
test=# drop table test; DROP TABLE test=# \d Did not find any relations. test=#
不绑定字段
构造数据
drop sequence if exists test_id_seq; create sequence test_id_seq; drop table if exists test; create table test(id int default nextval('test_id_seq'), name text);
测试
test=# drop table test; DROP TABLE test=# \d List of relations Schema | Name | Type | Owner --------+-------------+----------+---------- public | test_id_seq | sequence | postgres (1 row) test=#
总结
序列绑定字段,则删除表的时候,序列会被一并删除
序列不绑定字段,则序列与表是独立的,删除表不会将序列一并删除
补充:PG表中字段使用序列类型以及绑定序列实例
两种方法效果是一样的
直接看代码
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
postgresql修改自增序列操作
在 mysql 中,实现 id 自增的方式是依靠加一个 auto_increment 标志,而在 pgsql 中,id 自增是通过序列 SEQUENCE. 创建表时设置自增序列为: CREATE TABLE "config" ( "id" int4 NOT NULL DEFAULT nextval('config_id_seq'::regclass), ... }; 如果需要修改创建表之后的序列,如: ----删除前先解除 id 对该序列的依赖 ALTER TABL
-
postgresql 实现更新序列的起始值
迁移老数据到新的数据库,需要把id迁移过来,这时序列值就需要修改为当前最大值加1了. 使用这个语句就可以让s_seq的序列值从7开始了. alter sequence s_seq restart with 7; 补充:PostgreSQL设置主键自增.PostgreSQL重置主键自增从1开始,PostgreSQL清空表数据自增从1开始 PostgreSQL设置主键自增.PostgreSQL重置主键自增从1开始 自增字段 从1开始 清空表数据,自增从1开始 自增字段 PostgreSQL设置主键自
-
postgresql重置序列起始值的操作
我就废话不多说了,大家还是直接看代码吧~ -- 序列重置到1000 alter sequence sequence_name restart with 1000 -- 验证 SELECT nextval('sequence_name'); 补充:postgresql重置序列和自增主键 1. 问题背景 数据表中插入了几条测试数据,后又手动删除,导致后面插入数据的时候报主键冲突: ERROR: duplicate key value violates unique constraint "table
-
PostgreSQL 序列增删改案例
创建序列 CREATE SEQUENCE if not exists test_mergetable_id_seq INCREMENT 1 MINVALUE 1 MAXVALUE 999999999 START 1 CACHE 1; //或者: create sequence if not exists test_mergetable_id_seq increment by 1 minvalue 1 no maxvalue start with 1; 指定序列(给表的主键指定创建好的序列) al
-
PostgreSQL 序列绑定字段与不绑定字段的区别说明
序列绑定字段与不绑定字段的区别 绑定字段 构造数据 drop sequence if exists test_id_seq; create sequence test_id_seq; drop table if exists test; create table test(id int default nextval('test_id_seq'), name text); alter sequence test_id_seq owned by test.id; 测试 test=# drop ta
-
教你如何通过PL/SQL创建序列和触发器实现表自增字段
目录 1.通过PL/SQL创建序列: 2.通过PL/SQL创建触发器 假设我们有一个address表,希望实现地址编号address_id的自增 1.通过PL/SQL创建序列: 首先,新建Sequences对象 选择序列所有者,并填写序列的起始值.名称和增量等信息,并应用 可以查看其SQL创建语句 -- Create sequence create sequence SEQ_ADDRESS_ID minvalue 10001 maxvalue 99999999999999999999999999
-
解决postgresql 序列跳值的问题
一.序列的创建 CREATE SEQUENCE seq_bm_menuid INCREMENT 1 MINVALUE 1 MAXVALUE 999999999999999999 START 1 CACHE 5; 大家从以上语句中可以看出当前序列的cache为5,那么这个cache是在什么时候起作用呢? 二.遇到的序列跳值问题 当我们的web应用访问postgresql数据库,使用nextval('seq_bm_menuid')获取序列值,然后插入到我们的业务表中时,发现业务表中该序列值对应字段的
-
Python绑定方法与非绑定方法详解
本文实例为大家分享了Python绑定方法与非绑定方法,供大家参考,具体内容如下 定义: 绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1. 绑定到类的方法:用classmethod装饰器装饰的方法. 为类量身定制 类.boud_method(),自动将类当作第一个参数传入 (其实对象也可调用,但仍将类当作第一个参数传入) 2. 绑定到对象的方法:没有被任何装饰器装饰的方法. 为对象量身定制 对象.boud_method(),自动将对象当作第一个参数传入 (属于类的函数,类可以
-
SQL字符型字段按数字型字段排序实现方法
这是很久之前的就遇到的问题了,去年写了个WP插件:WordPress投票插件Ludou Simple Vote,由于有些使用者需要一个投票排行榜,所以需要用一条SQL来读取按得分排序的文章列表. Ludou Simple Vote的投票得分结果是以自定义栏目的方式存储在WordPress的postmeta中,分值存放在meta_value字段,而meta_value字段类型是longtext,如果直接使用下面的SQL查询语句来排序: 复制代码 代码如下: ORDER BY `meta_value
-
mysql 增加修改字段类型及删除字段类型
MySQL添加字段: alter table `user_movement_log` Add column GatewayId int not null default 0 AFTER `Regionid` (在哪个字段后面添加) 删除字段: alter table `user_movement_log` drop column Gatewayid 调整字段顺序: ALTER TABLE `user_movement_log` CHANGE `GatewayId` `GatewayId` int
-
MySQL查询空字段或非空字段(is null和not null)
现在我们先来把test表中的一条记录的birth字段设置为空. mysql> update test set t_birth=null where t_id=1; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 OK,执行成功! 设置一个字段值为空时的语法为:set <字段名>=NULL 说明一下,这里没有大小写的区分,可以是null,也可以是NULL. 下面看看结果: mysql&
-
vue绑定事件后获取绑定事件中的this方法
使用$event传递参数(事件本身) <input v-model="checknames" @change="changecheckbox(item,$event)" style="float: right" type="checkbox" :value="index" > changecheckbox(val,element) { console.log( element.currentTa
-
Python类的绑定方法和非绑定方法实例解析
一.绑定方法 1.对象的绑定方法 首先我们明确一个知识点,凡是类中的方法或函数,默认情况下都是绑定给对象使用的.下面,我们通过实例,来慢慢解析绑定方法的应用. class People: def __init__(self,name,age): self.name = name self.age = age def talk(self): pass p = People('xiaohua',18) print(p.talk) 输出结果: <bound method People.talk of
-
详解python方法之绑定方法与非绑定方法
写在之前 在 Python 的类里面除了属性之外,还有方法,当然也有文档和注释这类东西,但是这个只是人来看,计算机则不关心.我们之前说过,我们一般用实例调用方法,既然我们说了是一般,那么就说明还有其他调用方法的方式,今天我们就来说一下「绑定方法和非绑定方法」. 绑定方法和非绑定方法 在 Python 中除了特殊方法以外,类中的其他普通方法也是经常用到的,所以对于普通的方法也要进行研究,下面我们来看一个例子: >>> class Sample: ... def f(self): ... p
随机推荐
- 分享Java常用几种加密算法(四种)
- Oracle中的MD5加密详解
- Python和JavaScript间代码转换的4个工具
- 在.ashx文件中获取cookies值实现代码
- PHP 加密与解密的斗争
- python3使用tkinter实现ui界面简单实例
- 用c#获得当前用户的Application Data文件夹位置
- C# 封装HtmlHelper组件:BootstrapHelper
- ECMAScript 5严格模式(Strict Mode)介绍
- 详谈innodb的锁(record,gap,Next-Key lock)
- Javascript 多浏览器兼容总结(实战经验)
- Google 爬虫如何抓取 JavaScript 的内容
- C语言实现字符串匹配KMP算法
- node中koa中间件机制详解
- SQL Server误区30日谈 第12天 TempDB的文件数和需要和CPU数目保持一致
- jQuery表格排序组件-tablesorter使用示例
- jQuery中:checked选择器用法实例
- jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
- jQuery中toggle()函数的使用实例
- Jquery跨域获得Json的简单实例