Append CSV data to MySQL table via command line on MacOS

Want to append the data from CSV file to the existing MySQL table via command line on MacOS?

Using my-cmd, a Command-Line client for MySQL, you can append CSV/TSV/TXT data into existing MySQL (MariaDB, Percona) table easily and fast.

Support Windows, Linux, and MacOS.

Download my-cmd MacOS version Download my-cmd

No need to install MySQL client library.

Convenient to deploy to cloud. No need to run installation file, just uncompress and run, immediately.

Append CSV/TSV/TXT data to existing MySQL (MariaDB, Percona) table via command line on MacOS

1. In interactive mode:

my-cmd> load loadtype=append
      > table=media_messages 
      > datafile=/Users/pan/Documents/media_messages.csv 
      > delimiter=, 
      > quote=" 
      > header=y;

2. In batch mode:

my-cmd dsn="pan:withdata@192.168.0.102/test" task=load loadtype=append table=media_messages datafile=/Users/pan/Documents/media_messages.csv delimiter=, quote=" header=y quit=y

See parameters detail.


More about my-cmd – Command-Line client for MySQL

Download my-cmd MacOS versionDownload my-cmd

CSV → MySQL reference

Type mapping

Value kindin CSVin MySQL
Int1234INT
Bigint9007199254740993BIGINT
Decimal1234.56DECIMAL(p,s)
Float1.234e+10DOUBLE
Textquoted only when it contains a comma or a quoteVARCHAR(n)
Long textmust be quoted; line breaks inside force multi-line recordsLONGTEXT
Date2026-09-18DATE
Datetime2026-09-18 14:30:00DATETIME
Binarynot representable - base64 or hex stringLONGBLOB
BooleanTRUE / FALSE, or 1 / 0 depending on the writerTINYINT(1)
JSONthe whole JSON value quoted, with internal quotes doubledJSON

Dialect differences

CSV is a file format and MySQL is a database server, so the target has to be told the types the file never carried – the rows below are where the two sides diverge.

Propertyin CSVin MySQL
port—3306
identifiersDouble quotes; a literal quote is doubled ("" )`backtick`
row limit—LIMIT n
datesConventional text: 2026-09-18 or 2026-09-18 14:30:00DATETIME, TIMESTAMP, DATE, TIME
long text—TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT
binaryNot supportedBLOB / TINYBLOB / LONGBLOB
separatorComma ","—
encodingNo declaration - UTF-8 works only with a BOM—
typingNone - every field is text—
shapeFlat table, optional header rowTables of rows and columns
ceilingNo formal limit; row count bounded by memory—

Command line

SideCommand
MySQLmysqldump, or mysql -e "SELECT ..." > out.csv
MySQL (load)mysqlimport, or LOAD DATA INFILE

Convert your data online, free

Free in-browser converters for CSV, Excel, JSON, XML and SQL: Withdata Online Data Conversion. Large files, batch conversion or scheduling? See the offline desktop apps, or browse all data conversion tools.


Posted

in

by