mysqldump -u userName -p --no-create-info dbName tableName >tableName.sql
这条命令将数据库dbName中的表tableName的数据导出到文件tableName.sql中,其中-u表示数据库用户名, -p则用于提示输入用户密码。这里 –no-create-info用于限制生成Insert语句中不包含CREATE TABLE语句,如果需要导出整个数据库,可以省略–no-create-info 。
然而,直接使用mysqldump生成Insert语句过于繁琐,大家可以采用以下的SQL语句生成Insert语句:
SELECT CONCAT('INSERT INTO tableName (',GROUP_CONCAT(COLUMN_NAME SEPARATOR ','),') VALUES (',GROUP_CONCAT(CONCAT('\'',REPLACE(COLUMN_NAME,'name',''),('value')'\'') SEPARATOR ','),')') FROM information_schema.columns WHERE table_name='tableName' AND table_schema='dbName'
该语句需要先选择需要导出的表(tableName),然后替换注释中的内容,即可生成一段Insert语句
INSERT INTO tableName ( column1, column2, column3 ) VALUES ( 'value1', 'value2', 'value3' )
这种方法生成的Insert语句较为简洁,但是需要手动替换字段名以及字段值。