我已搜索堆栈溢出以寻找可能的解决方案,但找不到解决方案。请不要标为复制品。
我正在编写一个etl脚本,以执行对mysql表的升级。
emp表有主键(id,emp\u name),现在我已经删除了列id的自动增量,因为当对现有记录有更多更新时,id号有很大的差距。
现在我想提供我自己的id值,它是连续的(通过使用表中的max(id))。我遇到了一些问题,因为max(id)+1没有插入到表中。请帮助解决此问题。
conn = mysql.connector.connect(host=url, user=uname, password=pwd, database=dbase)
cur = conn.cursor()
insertQry = "INSERT INTO emp (id, emp_name, dept, designation, address1, city, state, active_start_date, is_active) SELECT (SELECT coalesce(MAX(ID),0) + 1 FROM atlas.emp) id, tmp.emp_name, tmp.dept, tmp.designation, tmp.address1, tmp.city, tmp.state, tmp.active_start_date, tmp.is_active from EMP_STG tmp ON DUPLICATE KEY UPDATE dept=tmp.dept, designation=tmp.designation, address1=tmp.address1, city=tmp.city, state=tmp.state, active_start_date=tmp.active_start_date, is_active =tmp.is_active ;"
n = cur.execute(loadQry)
print (" CURSOR status :", n)
暂无答案!
目前还没有任何答案,快来回答吧!