我正在尝试使用Python插入MySQL数据库,但我有一个自动增量列(TeamID)。我正在使用下面的线条,它就像一个魅力。但我不想在我的Python脚本中指定TeamID,因为它是一个自动增量
尝试:
cur.execute ("INSERT INTO teams values (%d, '%s', %d, '%s')" % (11,"Sevilla", 7, "Jorge Sampaoli"))
db.commit()
我怎样才能摆脱第一个%d和11?我希望通过脚本
自动添加此值非常感谢任何帮助
编辑:
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(host="localhost", # your host, usually localhost
user="username", # your username
passwd="password", # your password
db="dbname") # name of the data base
cur = db.cursor()
try:
cur.execute ("INSERT INTO teams values ('%s', %d, '%s')" % ("Sevilla", 7, "Jorge Sampaoli"))
db.commit()
except Exception as e:
print("Rolling back")
print(e)
db.rollback()
db.close()
答案 0 :(得分:1)
问题现已解决
我确实指定了列名,但没有注意到我需要对所有列使用%s,包括int值。如下:
cur.execute("INSERT INTO teams (TeamName, CountryID, TeamManager) values (%s,%s,%s)", ('Everton', 1, 'Ronald Koeman'))
答案 1 :(得分:0)
尝试
INSERT INTO teams (name, numb, player) VALUES ('%s', %d, '%s')
即明确列出列。 另外请不要这样做 - 而不是做'%s'你真的需要使用预准备语句,我认为在Python中它是这样的:
cursor.execute("INSERT INTO teams (name, numb, player) VALUES (%s, %d, %s)", ['Sevilla', 7, 'John Smith'])
阅读SQL注入。