我正在用从Python程序中检索到的数据填充SQL表。我正在使用Visual Studio Code for Python程序和MySQL Workbench 8.0 for SQL。其中有一些我无法解决的错误。
下面是我的代码:
from gettext import install #Importing PyMySQL extension
import pymysql
con = pymysql.Connect( #Establishing connection
host = 'localhost', #
port = 3306, #
user = 'root', #
password = 'Musa2014', #
db = 'referees', #
charset = 'utf8' #
)
Ref_Info = input("Enter referee details: ") #First input statement
Ref_First_Name, Ref_Last_Name, Ref_Level = Ref_Info.split() #Establishing individual variables
Ref_Info_Table = []
RefID = 1 #Setting the value of the RefID
cur = con.cursor() #Setting up cursor
while Ref_Info != 'Stop': #Creating loop to get referee information
Ref_Info_Table.append(Ref_Info.split()) #Updating Ref_Info_Table with new referee data
print(Ref_Info_Table) #Checking for bugs
print(Ref_Info.split()) #
print(RefID, Ref_Info) #
print('Referee ID:', RefID) #
print('Referee First Name:', Ref_First_Name) #
print('Referee Last Name:', Ref_Last_Name) #
print('Referee Level:', Ref_Level) #
RefID = RefID + 1 #Increasing the value of RefId
Ref_First_Name, Ref_Last_Name, Ref_Level = Ref_Info.split()
sql_query1 = 'INSERT INTO ref_info VALUES(RefID, Ref_First_Name, Ref_Last_Name, Ref_Level)'
sql_query2 = 'SELECT * FROM ref_info'
cur.execute(sql_query1)
cur.execute(sql_query2)
Ref_Info = input("Enter referee details: ") #Establishing recurring input again
sql_query3 = 'SELECT * FROM ref_info'
cur.execute(sql_query3)
data = cur.fetchall()
con.commit()
cur.close()
con.close()
以下是终端中的输出,其中包含错误。
Windows PowerShell版权所有(C)Microsoft Corporation。保留所有权利。
安装最新的PowerShell以获得新功能和改进!https://aka.ms/PSWindows
软件测试软件connection.py软件
软件测试软件connection.py软件
软件测试软件connection.py软件
软件测试软件connection.py软件
Enter referee details: Josh Allen 2
[['Zac', 'Constable', '3'], ['Josh', 'Allen', '2']]
['Josh', 'Allen', '2']
2 Josh Allen 2
Referee ID: 2
Referee First Name: Zac
Referee Last Name: Constable
Referee Level: 3
回溯(最近的呼叫排在最后):文件“c:\用户\mahd_.vscode\代码文件夹\测试\连接. py”,第37行,在cur.execute(sql_query1)中
文件“C:\用户\应用程序数据\本地\软件包\Python软件基础.Python.3.10_qbz 5 n2 kfra 8 p0\本地缓存\本地软件包\Python 310\站点软件包\pymysql\光标. py”,第148行,在执行result = self.query(查询)
文件“C:\用户\mahd\应用程序数据\本地\包\Python软件基础.Python.3.10_qbz 5 n2 kfra 8 p0\本地缓存\本地包\Python 310\站点包\pymysql\cursors.py”,第310行,在 * 查询连接中。查询(q)
文件“C:\用户\mahd*\应用程序数据\本地\包\Python软件基础.Python.3.10_qbz 5 n2 kfra 8 p0\本地缓存\本地包\Python 310\站点包\pymysql\连接. py”,第548行,在查询self中。* 受影响的行= self.* 读取查询结果(未缓冲=未缓冲)
文件“C:\用户\mahd*\应用数据\本地\软件包\Python软件基础.Python.3.10_qbz 5 n2 kfra 8 p0\本地缓存\本地软件包\Python 310\站点软件包\pymysql\连接. py”,第775行,在 read_query_result result.read()中
文件“C:\用户\mahd\应用程序数据\本地\包\Python软件基础.Python.3.10_qbz 5 n2 kfra 8 p0\本地缓存\本地包\Python 310\站点包\pymysql\连接. py”,第1156行,在读取第一个数据包= self.connection.read_packet()
文件“C:\用户\mahd\应用数据\本地\包\Python软件基础.Python.3.10_qbz 5 n2 kfra 8 p0\本地缓存\本地包\Python 310\站点包\pymysql\连接. py”,第725行,在 read_packet.raise_for_error()中
文件“C:\用户\mahd\应用程序数据\本地\包\Python软件基础.Python.3.10_qbz 5 n2 kfra 8 p0\本地缓存\本地包\Python 310\站点包\pymysql\协议. py”,第221行,在引发错误的错误中。
文件“C:\用户\mahd*\应用程序数据\本地\包\Python软件基础.Python.3.10_qbz 5 n2 kfra 8 p0\本地缓存\本地包\Python 310\站点包\pymysql\err.py”,第143行,在引发mysql_异常中引发错误类(错误号,错误值)
pymysql.err.IntegrityError:(1062,“关键字”ref_info. PRIMARY“的条目”0“重复”)
PS C:\用户\mahd*.vscode\代码文件夹\测试〉
1条答案
按热度按时间iih3973s1#
"Duplicate entry '0' for key 'ref_info.PRIMARY'"
表示您尝试在已经存在的ref_info
表中插入记录。主键是唯一的。