PostgreSQLinsertupdate常⽤操作及insert⽤法区别  创建测试数据表
create table student (
id int constraint idx_id primary key,
name varchar(20) constraint cst_name not null
);
插⼊数据
insert into student values(1,'lens');
1. 根据字段,当id冲突时更新name值
insert语句字段顺序insert into student values(1,'y5935') ON CONFLICT(id) do update set name=EXCLUDED.name ;
2.根据where条件选择性更新,由于id没有⼤于5的数据,故不更新。
(可以直接指定约束名,不需要字段,在实际中最好使⽤字段名)
insert into student values(2,'Y') ON CONFLICT ON CONSTRAINT idx_id do update set name=EXCLUDED.name where student.id>5 ;
3.只插⼊满⾜条件的数据⾏ ,冲突不做任何更新。
insert into student values(2,'Lens5935'),(3,'YYY') ON CONFLICT(id) do nothing ;
Insert⽤法区别:
1.insert into select
insert into Table1(field1,field2,...) select value1,value2,.....from Table2 [条件语句]
或者
insert into Table1 slelect * from Table2 [条件语句]
将Table2部分字段中的数据复制到Table1,⾸先字段的数量要⼀致,value的值可以是常量,但必须对应着字段接收;将Table2全部字段数据复制到Table1,字段数量要⼀致;
⽰例:
insert into stu(id,name)
select id,name from student
或者
insert into stu
select id,name from student
2.select insert into
select value1,value2 into Table1 from Table2 [条件语句];
要求Table1不存在,在插⼊时会⾃动创建表Table1,并将Table2中指定指定数据复制同步到Table1中;
⽰例:
select id,name into stu2 from student

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。