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后才能導入(會有正常警告);