删除重复字段数据

ctid: 表示数据记录的物理行当信息,指的是 一条记录位于哪个数据块的哪个位移上面。 跟oracle中伪列 rowid 的意义一样的;只是形式不一样。

如果email字段重复,可利用ctid 进行删除

1
2
DELETE FROM user_accounts USING user_accounts ua2
WHERE user_accounts.email = ua2.email AND user_accounts.id < ua2.id;

查询当前操作进程

1
select * from pg_stat_activity;

结束当前查询进程

1
SELECT pg_terminate_backend(pid);

JDBC 批量执行操作

设置reWriteBatchedInserts 变量为true,这样使用jdbc的批量添加方法才会生效

1
2
3
4
5
6
7
8
9
10
11
12
13
jdbcTemplate.batchUpdate(sql,new BatchPreparedStatementSetter() {

@Override
public int getBatchSize() {
return list.size();
}
@Override
public void setValues(PreparedStatement ps, int i)
throws SQLException {
Zhnw zhnw = list.get(i);
ps.setString(1, zhnw.getInsuredname());
}
});