postgresql 实现Mybatis数据库批量新增或更新
在PostgreSQL中实现类似MyBatis的数据库批量新增或更新,可以使用INSERT INTO ... ON CONFLICT ... DO UPDATE ...
语句。这个语句可以在遇到冲突时更新数据,如果不存在冲突,则执行插入操作。
以下是一个使用INSERT ... ON CONFLICT ... DO UPDATE ...
的例子:
INSERT INTO your_table (id, column1, column2)
VALUES
(1, 'value1', 'value2'),
(2, 'value3', 'value4'),
...
ON CONFLICT (id) DO UPDATE SET
column1 = EXCLUDED.column1,
column2 = EXCLUDED.column2;
在这个例子中,your_table
是要插入或更新数据的表。id
是用来检测冲突的唯一键。如果id
已经存在于表中,则更新column1
和column2
为新提供的值。如果id
不存在,则执行插入操作。
在PostgreSQL中,你也可以使用COPY
命令来执行批量插入,这通常比单条插入更高效。
COPY your_table (id, column1, column2) FROM STDIN;
1 value1 value2
2 value3 value4
...
\.
在这个例子中,你需要首先打开一个与数据库的连接,然后使用COPY
命令将数据传输到数据库中。这通常在数据导入的场景中使用。
评论已关闭