postgresql 实现Mybatis数据库批量新增或更新
warning:
这篇文章距离上次修改已过421天,其中的内容可能已经有所变动。
在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命令将数据传输到数据库中。这通常在数据导入的场景中使用。
评论已关闭