1.创建表
CREATE TABLE public.company (
id int4 NOT NULL ,
name text NOT NULL,
age int4 NOT NULL,
address bpchar(50) NULL,
salary float4 NULL,
join_date date NULL,
CONSTRAINT company_pkey PRIMARY KEY (id)
);
2.插入数据(不传入id)
INSERT INTO public.company
(name, age, address, salary, join_date)
VALUES('Kobe', 20, 'Lake', 10000, '1996-07-13');

3.由于主键id没有实现自增,所以出现上面错误。
4.新建序列: id-increase。postgresql中的通过序列,可以实现mysql中主键自增的效果。

5.将新建序列id-increase应用到company表的id主键上。nextval('"id-increase"'::regclass)

6.再次执行插入语句,数据插入成功。

7.更简单的方法是在创建表的时候,使用serial类型数据来指定主键id,轻松实现主键自增。

建表语句:
CREATE TABLE COMPANY(
ID SERIAL PRIMARY KEY,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL,
join_date date NULL,
);
插入数据(不传入id):
INSERT INTO company
(name, age, address, salary, join_date)
VALUES('Kobe', 20, 'Lake', 10000, '1996-07-13');
本文介绍了在PostgreSQL中如何解决创建表时主键ID未自增的问题,通过新建序列并应用到表的主键,以及推荐使用SERIAL数据类型来实现MySQL风格的主键自增功能。
1660

被折叠的 条评论
为什么被折叠?



