sql >> Databáze >  >> RDS >> Mysql

mysql problémy s načítáním dat místní syntaxe vstupního souboru s nastavenými poli

Přišel jsem na správnou syntaxi, aby to fungovalo:

sql = """LOAD DATA LOCAL INFILE %s INTO TABLE seriallog_dev 
         FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' 
         LINES TERMINATED BY '\\n' 
         IGNORE 1 LINES 
         (FLEX_PN, FLEX_PLANT, FLEX_ORDID, FLEX_REV, CUST_PN, CUST_REV, SERIALID, @DTE, @LTME) 
         SET RECORDID = NULL, 
             TRANS_OCR = STR_TO_DATE(CONCAT(@DTE,'',@LTME), "%%Y%%m%%d%%H%%i%%s"), 
             CREATED = CURRENT_TIMESTAMP;"""

params = (file,)
self.db.query( sql, params )

Pamatujte - to se provádí pomocí modulu mysqldb pythonu.

UPOZORNĚNÍ

Jediný problém s tímto řešením je, že z nějakého důvodu moje hromadné vložení vloží pouze prvních 217 řádků dat z mého souboru. Moje celková velikost souboru je 19 kB, takže si nedovedu představit, že je příliš velký pro vyrovnávací paměti mysql... tak co to dá?

další informace

Také jsem právě vyzkoušel tuto syntaxi přímo v CLI msyql-server a funguje pro všech 255 záznamů. Je tedy zřejmé, že jde o nějaký problém s pythonem, modulem python mysqldb nebo připojením mysql, které modul mysqldb vytváří...

HOTOVO

PRÁVĚ jsem na problém přišel, neměl to nic společného s příkazem load data local infile, ale spíše s metodou, kterou jsem používal k převodu mého původního souboru .dbf na .csv, než jsem se pokusil importovat .csv. Z nějakého důvodu byla metoda importu mysql spuštěna na .csv před dokončením metody převodu .dbf na .csv - což vedlo k tomu, že v souboru .csv byla nalezena částečná datová sada a importována... omlouvám se, že ztrácím čas!




  1. MySQL – Chyba připojení – [MySQL][Ovladač ODBC 5.3(w)]Hostitel „IP“ se nemůže připojit k tomuto serveru MySQL

  2. MySql:pokud hodnota existuje UPDATE else INSERT

  3. Zobrazuje se uživatelské jméno a ID uživatele z $_SESSION

  4. mysql - nejnovější zadání pro každé ID