CSV-till-SQL-konverterare

Att få in CSV-data i en databas innebär oftast att man antingen startar ett importverktyg eller skriver kommandon som COPY/LOAD DATA INFILE, vilka bara fungerar på lokala filer. För små datamängder – tiotals, hundratals eller några tusen rader – är vanliga INSERT-satser som du kan klistra in i vilken SQL-konsol som helst ofta snabbare. Det här verktyget tar din CSV och ett tabellnamn och skapar en INSERT per rad, med identifierare inom bakåtcitattecken (backticks) och värden inom enkla citattecken som är säkra att köra.

Hur SQL-koden sammansätts

  1. 1

    Klistra in CSV:en

    Standard-CSV med valfri rubrikrad. Parsern hanterar citerade celler med inbäddade avgränsare.

  2. 2

    Ange tabellnamnet

    Tecken i tabellnamnet som inte är bokstäver eller siffror ersätts med understreck; om fältet är tomt används `my_table`.

  3. 3

    Kolumnerna kommer från rubrikraden

    Om rubrikläget är på blir rad 1 kolumnlistan. Annars namnges kolumnerna `column_1`, `column_2` och så vidare.

  4. 4

    En INSERT per datarad

    Varje rad blir `INSERT INTO table (cols) VALUES (...)`. Värdena omges av enkla citattecken, och enkla citattecken inuti ett värde dubbleras.

Dialekt, citattecken och när du bör välja något annat

Generatorn skapar SQL i MySQL-stil med backticks runt identifierare och enkla citattecken runt värden. De flesta databaser tar emot den med små justeringar.

Dialektöversikt

Databas Citering av identifierare Anmärkningar
MySQL backticks Fungerar oförändrat.
MariaDB backticks Fungerar oförändrat.
PostgreSQL dubbla citattecken Byt ut ` mot " före körning.
SQLite dubbla citattecken Byt ut ` mot " eller ta bort citeringen av identifierare.
SQL Server hakparenteser Byt ut ` mot []; se upp med N'...' för Unicode.

Hur värden escapas

Alla värden omges av enkla citattecken, och enkla citattecken inuti dem dubbleras (O'Brien blir 'O''Brien'). Det är SQL-92-sättet och fungerar i alla större databaser. Konverteraren gör ingen typkonvertering – allt skrivs ut som en stränglitteral, så databasens implicita konvertering gör om '42' till ett heltal när kolumnen är INT.

Tips för rena importer

  • Skapa tabellen först. Konverteraren skapar bara INSERT-satser, inte CREATE TABLE. Kombinera med ett schema som du definierar för hand eller genererar från din ORM.
  • Dela upp stora filer. Klistra in 500–1000 rader åt gången om din SQL-klient har en gräns för hur stor en sats får vara.
  • Kapsla in i en transaktion. För mer än ett par hundra rader, omslut det inklistrade med BEGIN; och COMMIT; (eller START TRANSACTION;/COMMIT;). Det är mycket snabbare än att autocommitta varje sats för sig.

När du bör hoppa över SQL-generering

Om din fil har mer än cirka 50 000 rader är inbyggda bulkladdare (COPY i Postgres, LOAD DATA INFILE i MySQL och bcp i SQL Server) storleksordningar snabbare än INSERT-satser från ett skript. Det här verktyget är till för snabba importer, ifyllning av testdata och engångsmigreringar.

Vanliga frågor

Nej. Det avger endast INSERT-satser. Definiera schemat själv med CREATE TABLE i förväg – på så sätt behåller du kontroll över kolumntyper, längder och begränsningar istället för att låta omvandlaren göra gissningar.

Med en enda ändring: byt ut backtick-citeringen runt tabell- och kolumnnamn mot dubbla citattecken. Värdena omges av enkla citattecken och körs oförändrade i vilken SQL-92-dialekt som helst.

Enkla citattecken inuti värden dubbleras (O''Brien), vilket är standard-escapen i SQL. Bakåtsnedstreck, procenttecken och understreck skickas igenom bokstavligt – de får bara särskild betydelse i LIKE-mönster.

Ja, CSV:en skickas till vår server så att SQL:en kan genereras. Den sparas inte och läggs inte till i sidlänken.

Relaterade verktyg

Verktyget finns på andra språk