我有两个表,我想从一个表添加信息到另一个表,但表有相同的行。
INSERT INTO wp_posts (
id,
post_author,
post_content,
post_title,
post_name,
post_type
)
SELECT id,
3,
post_content,
post_title,
post_name,
post_type
FROM wp_posts2
WHERE post_type='Vacancy'
所以我收到错误
[Err] 1062 - Duplicate entry '7142' for key 'PRIMARY'
如何只添加新行?
答案 0 :(得分:0)
只获取新ID:
INSERT INTO wp_posts (
id,
post_author,
post_content,
post_title,
post_name,
post_type
)
SELECT id,
3,
post_content,
post_title,
post_name,
post_type
FROM wp_posts2
WHERE post_type='Vacancy'
and id not in (select id from wp_posts)
答案 1 :(得分:0)
在我看来,在表中wp_posts id是主键,wp_posts2具有相同的id值。这就是它抛出错误的原因。
如果id是AUTO_INCREMENT字段,那么您不需要在查询中包含“id”,如下所示:
INSERT INTO wp_posts (
post_author,
post_content,
post_title,
post_name,
post_type
)
SELECT
3,
post_content,
post_title,
post_name,
post_type
FROM wp_posts2
WHERE post_type='Vacancy'