簡體   English   中英

python到mysql插入錯誤

[英]python to mysql insert error

我正在嘗試使用python和以下代碼將數據插入Network Solutions托管的數據庫中。 我能夠成功連接到數據庫,但是當我嘗試將數據插入表中時出現此錯誤:

1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`focused`.`test_results`, CONSTRAINT `test_results_practice_tests_FK` FOREIGN KEY (`practice_test_id1`) REFERENCES `practice_tests` (`practice_test_id`))

import mysql.connector
from mysql.connector import errorcode

config = {
  'user': '{user}',
  'password': '{psswd}',
  'host': '{host}',
  'database': '{dbname}',
  'raise_on_warnings': True,
}

try:
  cnx = mysql.connector.connect(**config)
  cursor = cnx.cursor()

  query = """INSERT INTO test_results (result_id, student_id1, practice_test_id1, section_1_score, section_1_missed, section_2_score, section_2_missed, section_3_score, section_3_missed, section_4_score, section_4_missed, e_reading_score, e_analysis_score, e_writing_score, command_score, command_missed, words_score, words_missed, expression_score, expression_missed, heart_score, heart_missed, standard_score, standard_missed, problem_score, problem_missed, passport_score, passport_missed, history_score, history_missed, science_score, science_missed, math_score, reading_score) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"""
  data_test_result = (1, 1, 1, 1, '', 1, '', 1, '', 1, '', 1, 1, 1, 1, '', 1, '', 1, '', 1, '', 1, '', 1, '', 1, '', 1, '', 1, '', 1, 1)
  cursor.execute(query, data_test_result)


except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with your user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  cnx.close()

這是表結構的圖片,僅供參考。 表結構

我想知道如何解決此問題並將數據成功插入表中。 非常感謝您的提前幫助!

該錯誤消息的含義是數據庫結構定義了要向其中插入數據的表與另一個名為practice_tests的表之間的關系。 在你的價值觀practise_test_id1因此列必須存在作為主鍵值practice_tests表維護結構的“關系完整性”。

你會發現,如果你插入相應的行成practice_tests您的代碼將工作-但不要忘記調用的連接commit方法 ,否則你的改變將不會成為永久性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM