--1、主键id不重复就插入,否则更新insertinto表名称 (字段a, 字段b, ...)values(value_a, value_b, ...)onconflict (主键id) doupdateset...略--2、直接绑定主键名称,主键重复则更新insertinto表名称 (字段a, 字段b, ...)values(value_a, value_b, ...)onconflictonconstraintthis_table_key doup...
INSERTINTOtable_name (column1, column2)VALUES(value1, value2) ONCONFLICTONCONSTRAINTconstraint_name DO NOTHING;-- 或者 DO UPDATE ... 2、条件更新:在执行 UPDATE 操作时,可以加入 WHERE 子句来设置条件,仅在满足某些条件时才更新。 1 2 3 4 INSERTINTOtable_name (column1, column2)VALUES(value1, ...
insert into test (tenant_code,other_id,device_id) values (1,10,0) on conflict (tenant_code,other_id) do update set device_id = excluded.device_id; 直接更新会报错! 直接更新会报错!SQL Error [42P10]: ERROR: there is no unique or exclusion constraint matching the ON CONFLICT specification...
CREATE UNIQUE INDEX idx_unique_column ON your_table (column_name); 使用INSERT IGNORE或INSERT ON CONFLICT语句:PostgreSQL提供了INSERT IGNORE和INSERT ON CONFLICT语句,可以在插入数据时处理冲突。INSERT IGNORE语句将忽略具有冲突主键值的数据,而INSERT ON CONFLICT语句允许您指定在发生冲突时要执行的操作(例如更新现...
PostgreSQL INSERT ON CONFLICT不存在则插入,存在则更新 1、不存在则插入,存在则更新 insertintotestvalues(1,'test',now())onconflict (id) doupdatesetinfo=excluded.info,crt_time=excluded.crt_time; 执行操作:INSERT01查看结果:select*fromtest;
ON CONSTRAINT constraint_name,基于某个唯一约束进行判断。 conflict_action 表示冲突时采取的操作: DO NOTHING,如果数据已经存在,不做任何操作; DO UPDATE SET,如果数据已经存在,更新该数据;可以使用WHERE子句进一步限制需要更新的数据。 这种语句通过为INSERT语句增加ON CONFLICT选项,组合了INSERT和UPDATE语句的功能,因此...
PostgreSQL , upsert , insert on conflict do 背景 PostgreSQL 9.5 引入了一项新功能,UPSERT(insert on conflict do),当插入遇到约束错误时,直接返回,或者改为执行UPDATE。 语法如下 Command: INSERT Description: create new rows in a table Syntax:
--1、主键id不重复就插入,否则更新insertinto表名称 (字段a, 字段b, ...)values(value_a, value_b, ...)onconflict (主键id) doupdateset...略--2、直接绑定主键名称,主键重复则更新insertinto表名称 (字段a, 字段b, ...)values(value_a, value_b, ...)onconflictonconstraintthis_table_key ...
INSERT INTO users (id, name, email) VALUES (1, 'Abiola Laila', 'abiola.new@example.com') ON CONFLICT (id) DO UPDATE SET email = EXCLUDED.email; Copy4. UPSERT with Unique ConstraintsIf your table has a unique constraint (e.g., on email), you can handle conflicts using it:...
insert into upsert_test (id, name) values (1, 'hello'); select *, xmax from upsert_test; 做没有效果的促销活动。观察xmax在每次执行时(意外)递增: insert into upsert_test (id, name) values (1, 'hello') on conflict on constraint upsert_test_pkey do update ...