国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Einfügen von zwei Tabellen mit einer Viele-zu-Viele-Beziehung in einer einzigen for-Schleife mithilfe von Pandas auf MariaDB
P粉710478990
P粉710478990 2023-08-15 12:18:58
0
1
610
<p>我正在嘗試批量插入數(shù)據(jù)到兩個(gè)具有多對多關(guān)系的表中,如果我只在一個(gè)表中插入沒有問題,但我無法同時(shí)在兩個(gè)表中插入。</p> <pre class="brush:php;toolbar:false;">CREATE TABLE IF NOT EXISTS `mydbv3`.`PRODOTTI` ( `idPRODOTTI` INT(11) NOT NULL AUTO_INCREMENT, `PROD_ATTIVO` TINYINT(4) NULL DEFAULT 1, `EAN13` VARCHAR(45) NOT NULL, `prod_nome` VARCHAR(300) NOT NULL, `Prezzo` DECIMAL(15,2) NULL DEFAULT NULL, `Costo` DECIMAL(15,2) NOT NULL, `PRODOTTI_marca` VARCHAR(45) NULL DEFAULT NULL, `Quantita` DECIMAL(10,0) NOT NULL DEFAULT 0, `PRODOTTI_descrizione` TEXT NULL DEFAULT NULL, `Data_ins` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP(), `Data_update` TIMESTAMP NULL DEFAULT NULL, `CheckProd` TIMESTAMP NULL DEFAULT NULL, `Fornitori_Ordini_idOrdini` INT(11) NULL DEFAULT NULL, `Fornitori_idFornitori` INT(11) NOT NULL, `CAT_IVA_idCAT_IVA` INT(11) NOT NULL, PRIMARY KEY (`idPRODOTTI`), UNIQUE INDEX `idPRODOTTI_UNIQUE` (`idPRODOTTI` ASC) VISIBLE, INDEX `fk_PRODOTTI_Fornitori1_idx` (`Fornitori_idFornitori` ASC) VISIBLE, INDEX `fk_PRODOTTI_CAT_IVA1_idx` (`CAT_IVA_idCAT_IVA` ASC) VISIBLE, CONSTRAINT `fk_PRODOTTI_CAT_IVA1` FOREIGN KEY (`CAT_IVA_idCAT_IVA`) REFERENCES `mydbv3`.`CAT_IVA` (`idCAT_IVA`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_PRODOTTI_Fornitori1` FOREIGN KEY (`Fornitori_idFornitori`) REFERENCES `mydbv3`.`Fornitori` (`idFornitori`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB AUTO_INCREMENT = 145908 DEFAULT CHARACTER SET = utf8; CREATE TABLE IF NOT EXISTS `mydbv3`.`CATEGORIE` ( `idCATEGORIE` INT(11) NOT NULL AUTO_INCREMENT, `Nome_Categoria` VARCHAR(45) NOT NULL, `Categoria_Padre` VARCHAR(45) NOT NULL, PRIMARY KEY (`idCATEGORIE`)) ENGINE = InnoDB AUTO_INCREMENT = 31 DEFAULT CHARACTER SET = utf8;</pre> <p>這是我嘗試的代碼</p> <pre class="brush:php;toolbar:false;">import pandas as pd import mysql.connector as msql from mysql.connector import Error empdata = pd.read_csv('static/files/prod_ridotto3.csv', index_col=False, delimiter=';', on_bad_lines='skip', usecols=["Attivo (0/1)","EAN13","Nome","Categorie","Prezzo","IVAID","Costo","Fornitore","Quantità","Data Ordine"]) #print(empdata.head()) #cat = series_one = pd.Series(empdata.Age) #EANDATA = pd.read_csv('static/files/prod_ridotto3.csv', delimiter=';', on_bad_lines='skip', usecols=["Categorie"]) #print (EANDATA) #print(EANDATA.head()) try: conn = msql.connect(host='192.168.1.2', database='mydbv3', user='root', password='password') try: if conn.is_connected(): cursor = conn.cursor() cursor.execute("select database();") record = cursor.fetchone() #print (record) print("You're connected to database: ", record) #loop through the data frame for i,row in empdata.iterrows(): sql = "INSERT INTO PRODOTTI (PROD_ATTIVO,EAN13,prod_nome,Prezzo,CAT_IVA_idCAT_IVA,Costo,Fornitori_idFornitori,Quantita,Data_ins) VALUES (%s,%s,%s,%s,(select idCAT_IVA from CAT_IVA where CAT_IVA_code = %s),%s, (select idFornitori from Fornitori where FORNITORI_Nome = %s),%s,%s)" #print (type(row)) #print(row) #print(tuple(row)) cat = (row.Categorie,) #print("Type CAT",type(cat)) #print("CAT=",cat) #print (type(tuple(cat))) sql1 = "INSERT INTO PRODOTTI_has_CATEGORIE (PRODOTTI_idPRODOTTI,CATEGORIE_idCATEGORIE) VALUES ((SELECT LAST_INSERT_ID()),(select CATEGORIE.idCATEGORIE from CATEGORIE where Nome_Categoria = %s))" cursor = conn.cursor() cursor.execute("select database();") record = cursor.fetchone() print (record) #print(sql) #print(tuple(row)) #print(row) cursor.execute(sql, tuple(row)) cursor.execute(sql1, cat) print("Product inserted",i) conn.commit() except Error as e: print("Error while inserting in DB", e) except Error as e: print("Error while connecting to MySQL", e)</pre> <p>現(xiàn)在,顯然我會得到錯(cuò)誤:<code>AttributeError: 'Series' object has no attribute 'Categorie'</code> 但是如果我在</p> <pre class="brush:php;toolbar:false;">usecols=["Attivo (0/1)","EAN13","Nome","Categorie","Prezzo","IVAID","Costo","Fornitore","Quantità","Data Ordine"])</pre> <p>然后我在第一個(gè)插入中沒有用到它,會出現(xiàn)與未使用所有字段相關(guān)的錯(cuò)誤。</p> <p>我認(rèn)為一定存在一個(gè)簡單的解決方案,或者我的數(shù)據(jù)庫結(jié)構(gòu)存在問題。 我嘗試了很多不同的方法,但都沒有成功,有人可以幫助解決這個(gè)問題嗎?</p> <p>謝謝。</p>
P粉710478990
P粉710478990

Antworte allen(1)
P粉649990273

如果我理解正確,下面的代碼行:

cat = (row.Categorie,)

創(chuàng)建了一個(gè)只有一個(gè)值的元組。 然后,使用這個(gè)語句提供了一個(gè)只有一個(gè)值的元組:

cursor.execute(sql1, cat)

但實(shí)際上你應(yīng)該提供更多的值。 所以你需要檢查這行代碼,并提供sql1需要的所有值。

希望對你有幫助。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage