mysql文件导入导出有2种方式:
1. 导入导出操作SQL文件,通过执行SQL语句来完成操作,文件中包含建表语句和一系列的插入语句;
2. 导入导出操作特定格式的文本数据,该方式文件中仅包含数据,注意文件的编码和数据库编码要兼容,文件编码应该和character_set_database一致,而与set names charaset的charset无任何关系;
这里只是方式2的操作方法:
导出到文件:
select * from custom into outfile 'e:\custom.txt' FIELDS TERMINATED BY ',' optionally enclosed by '"';
从文件导入:
load data infile 'e:\custom.txt' replace into table custom;
load data infile 'e:\custom.txt' replace into table custom fields terminated by ',' optionally enclosed by '"';
从库中其他表导入:
insert into tablename1 select * from tablename2;
///////////// 导入导出给定列 ///////////
load data infile 'e:\custom.txt' replace into table custom fields terminated by ',' optionally enclosed by
'"'(customid,name,sex);
select customid,name,sex from custom into outfile 'e:\acustom.txt' fields terminated by ',' optionally enclosed
by '"';
////////////////////////
MYSQL的主键是放主存的,第一次的时候执行max获取最大编号,如果插入的时候没有就自增,如果插入的时候指定了主键,则判
断是否大于max,是则设置主键为max,并插入记录,否则替换或出错;如果自增主键为null,则仍是自增;
所以导入的时候,自增主键也可以直接导入;
如果导入的时候出现:truncated字样,则是SQL_MODE问题,修改sql_mode就可以了;
show variables like '%sql_mode%';
set sql_mode='no_auto_create_user,no_engine_substitution';
如出现错误:ERROR 1262 (01000): Row 6737 was truncated; it contained more data than there were input columns.
如:文件中出现,,空字符,正常情况下会出错,需要修改sql_mode后才能导入(会有正常警告);