我正在编写一个简单的程序来帮助在两个mysql数据库之间移动数据,例如,我在每个数据库的两个农夫表之间移动数据。
以下是我正在尝试的代码。
import MySQLdb, sys, pprint, io
from operator import not_
def ViewAllfarmers(myCon):
cursor = myCon.cursor()
cursor.execute(" SELECT farmermobile FROM adggtnz.reg02_maininfo")
rows = cursor.fetchall()
for row in rows:
print row[0];
inserts(myCon,row[0])
myCon.commit()
def inserts(myCon,mobile):
cursor = myCon.cursor()
print str(mobile)
strs="insert into adggtnz2.farmers(farmermobile) values ('"+mobile+"')"
print strs
cursor.execute(strs)
def main():
host = '127.0.0.1' # The MySQL Host
port=3306 #mysql port
user = 'root' # The MySQL User name
schema = 'adggtnz' # The MySQL Schema name
password = 'test' # The MySQL User password
try:
myCon = MySQLdb.connect(host,user, password, schema,port)
ViewAllfarmers(myCon)
except MySQLdb.Error, e:
print "Error %d: %s" % (e.args[0], e.args[1]) # Print the error
sys.exit(1) # Exits with error
if __name__ == "__main__":
main()
此代码的错误:由于以下逻辑错误,我无法将任何数据传输到Farmers表中
Rosemarijn
0613174066
insert into adggtnz2.reg01_maininfo(techname,techmobile ) values ('Rosemarijn','0613174066')
Error 1062: Duplicate entry '0613174066' for key 'PRIMARY'
答案 0 :(得分:1)
您有一个主键,并试图在Primary Key
中添加多个值,因此会出现此错误。我认为问题是忘记了主键行的标识AUTO_INCREAMENT
。