postgresql如何让主键自增

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql如何让主键自增相关的知识,希望对你有一定的参考价值。

参考技术A postgresql如何让主键自增

法一:
?

1
2
3
4
5
6
7
8
9

Sql代码
CREATE TABLE customers
(
customerid SERIAL primary key ,
companyname character varying,
contactname character varying,
phone character varying,
country character varying
)

法二:
?

1
2
3
4
5
6
7
8
9

Sql代码
CREATE SEQUENCE event_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;

alter table event alter column id set default nextval('event_id_seq');

2种方法都可以,第一种简单点。本回答被提问者和网友采纳

JAVA中如何保证线程安全以及主键自增有序

参考技术A 一、常见场景多个线程针对一个i进行主键自增。多线程下如果不做安全策略,将会导致各个现成获取的i值重复,导致脏数据常见策略1、增加syschroize进行线程同步2、使用lock、unlock处理3、使用reetrantent 锁进行锁定缺点:容易造成性能低下,或者编写代码容易造成死锁二、新方案jdk新提供的功能,atomicInteger(还有其他一atomic开头的原子性操作类)AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。原理:通过java的CAS compare and swap,简称cas原语进行操作提升性能,这个也号称乐观锁,不阻塞观锁实际上并不加锁,当计算遇到冲突或者说前后不一致时会重试 直到成功CAS有3个操作数 内存值V 要跟内存值做比较的值A 和 新值 Bwhile(true)if(V == A)V = B;return ;elseA = V;CAS的操作对象为volatile类型volatile类型变量是:CPU直接读写变量所在的内存 而不是把变量copy到寄存器操作这样对变量的操作所有线程都是可见的这样做的结果是减少了并发时冲突的概率 但不能完全避免

以上是关于postgresql如何让主键自增的主要内容,如果未能解决你的问题,请参考以下文章

DB2 如何主键自增

Django 主键自增

JAVA中如何保证线程安全以及主键自增有序

SQL Server 2000中如何设置自增主键?

mybatis怎么设置主键自增

sql 设置主键 自动增长