为什么下面给出“ IntegrityError:唯一约束失败:TwitterStream.twitter_id”错误?这就是我在SQL Server中执行此任务的方式,看不到它将如何在表中插入键。
#left join on key and only insert if key not in table
c.execute('INSERT INTO TwitterStream SELECT TwitterStream_Stage.* FROM TwitterStream_Stage LEFT JOIN TwitterStream ON TwitterStream_Stage.twitter_id = TwitterStream.twitter_id WHERE TwitterStream.twitter_id IS NULL')
您的查询正确地从目标表TwitterStream_Stage
中已经存在twitter_id
的源表TwitterStream
中排除了行。
因此,您收到的错误表明您在源表本身中有重复的twitter_id
。
您可以通过以下查询在twitter_id
上显示源重复项:
select twitter_id
from TwitterStream_Stage
group by twitter_id
having count(*) > 1