debugging 需要在我的程序中进行一些调试:使用从Python程序检索到的数据填充SQL表

xsuvu9jc  于 2022-11-14  发布在  Python
关注(0)|答案(1)|浏览(145)

我正在用从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\代码文件夹\测试〉

iih3973s

iih3973s1#

"Duplicate entry '0' for key 'ref_info.PRIMARY'"表示您尝试在已经存在的ref_info表中插入记录。主键是唯一的。

相关问题