我有两张表table1和test_table1,它们具有相同的模式。
这两个表都有行/数据和以1开头的主键id。
我想要做的是:
insert into test_table1 select * from table1;
但由于表1中的主键值存在于test_table1中,因此此方法失败了。
解决方法是指定列并将pk列留空,但出于某种原因,这也不起作用:
例如: 注意-以下查询中没有pk列
insert into test_table1 (col1, col2,..., coln) select col1,col2,...,coln from table1;
返回值
错误:违反唯一约束条件“test_table1_pkey”的重复关键字值 详细信息:(id)=(1)的键已经存在。
我知道这在MySql中可以工作,这只是因为Postgresql吗?有什么办法解决吗?
编辑:
两个表都有主键和序列集。
由于不清楚 - 表格没有相同的数据。 我只想将table1中的行添加到test_table1中。
对于告诉我从查询中排除主键的答案 - 我像我之前说的那样做了。
INSERT .. ON CONFLICT
可能适用于您。 - Nick