postgresql的insert语句中进行判断,数据已有则更新,数据没有则插入

发布时间 2023-09-20 14:00:04作者: JackGIS

INSERT 操作

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

下面是一个示例:

INSERT INTO employee (id, name, salary)
VALUES (1, 'John Doe', 5000);

 INSERT或UPDATE 操作

在执行insert的时候进行判断,根据情况进行insert或者update操作,可以使用 INSERT ON CONFLICT 语句来实现

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...)
ON CONFLICT (column)
DO UPDATE SET column1 = value1, column2 = value2, ...;
  • table_name:要插入或更新数据的表的名称。
  • column1, column2, …:要插入或更新的列的名称。
  • value1, value2, …:要插入或更新的值。
  • column:用于指定用于检查冲突的列。

下面是一个示例:

INSERT INTO employee (id, name, salary)
VALUES (1, 'John Doe', 5000)
ON CONFLICT (id)
DO UPDATE SET name = 'John Doe', salary = 5000;