Ik importeer een aantal gegevens van 20000 rijen van een CSV-bestand naar MySQL.
Kolommen in de CSV zijn in een andere volgorde dan de kolommen van MySQL Table. Hoe het automatisch kolommen toewijzen die overeenkomen met de kolommen van MySQL-tabel?
Wanneer ik
uitvoeren
LOAD DATA INFILE'abc.csv' INTO TABLE abc
Deze query voegt alle gegevens toe aan de eerste kolom.
Suggereer de automatische syntaxis voor het importeren van gegevens naar MySQL.
Antwoord 1, Autoriteit 100%
U kunt gebruiken DATA Infile Opdracht om CSV bestand in tabel te importeren.
Controleer deze link MySQL – Load Data Infile .
LOAD DATA LOCAL INFILE 'abc.csv' INTO TABLE abc
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(col1, col2, col3, col4, col5...);
voor MySQL 8.0-gebruikers:
Gebruik van de LOCAL
trefwoord HOLD-beveiligingsrisico’s en vanaf MySQL 8.0 De LOCAL
Mogelijkheid is ingesteld op False
Standaard. Mogelijk ziet u de foutmelding:
FOUT 1148: De gebruikte opdracht is niet toegestaan met deze MySQL-versie
U kunt het overschrijven door de instructies in de docs .
Pas op dat dergelijke overschrijving het beveiligingsprobleem niet oplost, maar eerder gewoon een erkent dat u weet en bereid bent het risico te nemen.
Antwoord 2, Autoriteit 29%
U moet waarschijnlijk de FIELDS TERMINATED BY ','
of wat het scheidingsteken ook is, instellen.
Voor een CSV-bestand zou uw verklaring er als volgt uit moeten zien:
LOAD DATA INFILE 'data.csv' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
Antwoord 3, autoriteit 27%
Voordat u het bestand importeert, moet u het volgende voorbereiden:
- Een databasetabel waarin de gegevens uit het bestand worden geïmporteerd.
- Een CSV-bestand met gegevens die overeenkomen met het aantal kolommen van de
tabel en het type gegevens in elke kolom. - Het account, dat verbinding maakt met de MySQL-databaseserver, heeft FILE
en INSERT-rechten.
Stel dat we de volgende tabel hebben:
MAAK TABEL MET DE VOLGENDE VRAAG:
CREATE TABLE IF NOT EXISTS `survey` (
`projectId` bigint(20) NOT NULL,
`surveyId` bigint(20) NOT NULL,
`views` bigint(20) NOT NULL,
`dateTime` datetime NOT NULL
);
UW CSV-BESTAND MOET GOED WORDEN GEFORMATTEERD VOOR VOORBEELD ZIE VOLGENDE
BIJGEVOEGDE AFBEELDING :
Als alles in orde is.. Voer de volgende vraag uit om DATA UIT CSV-BESTAND TE LADEN:
OPMERKING: voeg een absoluut pad van uw CSV-bestand toe
LOAD DATA INFILE '/var/www/csv/data.csv'
INTO TABLE survey
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
Als alles is gedaan. je hebt met succes gegevens van CSV naar tabel geëxporteerd
Antwoord 4, autoriteit 9%
Syntaxis:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL]
INFILE 'file_name' INTO TABLE `tbl_name`
CHARACTER SET [CHARACTER SET charset_name]
FIELDS [{FIELDS | COLUMNS}[TERMINATED BY 'string']]
[LINES[TERMINATED BY 'string']]
[IGNORE number {LINES | ROWS}]
Zie dit voorbeeld:
LOAD DATA LOCAL INFILE
'E:\\wamp\\tmp\\customer.csv' INTO TABLE `customer`
CHARACTER SET 'utf8'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
Antwoord 5, autoriteit 5%
Voeg meer dan 7000000 record in 1 minuut in de database in (supersnelle zoekopdracht met berekening)
LOAD DATA LOCAL INFILE "'.$file.'"
INTO TABLE tablename
FIELDS TERMINATED by \',\'
LINES TERMINATED BY \'\n\'
IGNORE 1 LINES
(isbn10,isbn13,price,discount,free_stock,report,report_date)
SET RRP = IF(discount = 0.00,price-price * 45/100,IF(discount = 0.01,price,IF(discount != 0.00,price-price * discount/100,@RRP))),
RRP_nl = RRP * 1.44 + 8,
ID = NULL
RRP en RRP_bl zijn niet in csv, maar we worden berekend dat en nadat we dat hebben ingevoegd.
Antwoord 6
Als u LOAD DATA LOCAL INFILE
uitvoert vanuit de Windows-shell, en u OPTIONALLY ENCLOSED BY '"'
moet gebruiken, moet u zoiets als dit doen om tekens correct te laten ontsnappen:
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql" -u root --password=%password% -e "LOAD DATA LOCAL INFILE '!file!' INTO TABLE !table! FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"^""' LINES TERMINATED BY '\n' IGNORE 1 LINES" --verbose --show-warnings > mysql_!fname!.out
Antwoord 7
stel dat je xampp en phpmyadmin gebruikt
je hebt bestandsnaam ‘ratings.txt’ tabelnaam ‘ratings’ en databasenaam ‘movies’
als uw xampp is geïnstalleerd in “C:\xampp\”
kopieer uw “ratings.txt”-bestand naar de map “C:\xampp\mysql\data\movies”
LOAD DATA INFILE 'ratings.txt' INTO TABLE ratings FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;
Ik hoop dat dit je kan helpen om je fout weg te laten als je dit op localhost doet
Antwoord 8
Je kunt proberen om als volgt in te voegen:
LOAD DATA INFILE '/tmp/filename.csv' replace INTO TABLE [table name] FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (field1,field2,field3);
Antwoord 9
Je kunt gegevens laden uit een csv- of tekstbestand.
Als u een tekstbestand hebt met records uit een tabel, kunt u die records in de tabel laden.
Als u bijvoorbeeld een tekstbestand heeft, waarbij elke rij een record is met de waarden voor elke kolom, kunt u de records op deze manier laden.
tabel.sql
id //field 1
name //field2
tabel.txt
1,peter
2,daniel
...
–voorbeeld op vensters
LOAD DATA LOCAL INFILE 'C:\\directory_example\\table.txt'
INTO TABLE Table
CHARACTER SET UTF8
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n';
Antwoord 10
Ik ontvocht de foutcode: 1290. De MySQL-server wordt uitgevoerd met de –Secure-File-Priv
Optie, dus het kan deze verklaring niet uitvoeren
Dit werkte voor mij op Windows 8.1 64 bit met behulp van Wampserver 3.0.6 64bit.
Bewerkte My.ini-bestand van C: \ WAMP64 \ BIN \ MYSQL \ MYSQL5.7.14
Invoer verwijderen Secure_file_Priv C: \ WAMP64 \ tmp \ (of welke dir ook hier)
stopte alles -Exit Wamp etc. en start alles opnieuw; Punt vervolgens mijn CVS-bestand op C: \ WAMP64 \ bin \ mysql \ mysql5.7.14 \ data \ u242349266_recur (het laatste dir is mijn database-naam)
uitgevoerd
Laad gegevensinfile ‘myfile.csv’
In tabel alumnos
Velden beëindigd door ‘,’
ingesloten door ‘”‘
Lijnen beëindigd door ‘\ r \ n’
negeer 1 lijnen
… en voila !!!
Antwoord 11
Tegen deze dagen (einde 2019) Ik geef de voorkeur aan een hulpmiddel zoals http: / /www.convertcsv.com/csv-to-sql.htm
Ik heb veel rijen die je kunt uitvoeren gepartitioneerde blokken die gebruikersfouten besparen wanneer CSV afkomstig is van een eindgebruikerspreadsheet.