国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql load data infile 的用法(40w數據 用了3-5秒導進mysql)

2024-07-24 13:01:30
字體:
來源:轉載
供稿:網友

如果是導入有中文的數據,我的mysql 設置的utf8 字符集,所以你要導入的xxx.txt 文件也要保存utf-8的字符集,命令 load data infile "d:/Websites/Sxxxx/test1.txt" ignore into table `names` fields terminated by ',' enclosed by '"';

不知道用replace 這個關鍵字的話,還是會亂碼。。不同、等高手回答。


在詳細的介紹,推薦大家去看mysql手冊去吧、里面介紹的很詳細


在使用LOAD DATAMySQL的時候,有2種情況:

1)在遠程客戶端(需要添加選項:--local-infile=1)導入遠程客戶端文本到MySQL,需指定LOCAL(默認就是ignore,ignore選項會放棄數據,加replace選項會更新數據,都不會出現唯一性約束問題。

2)在本地服務器導入本地服務器文本到MySQL,不指定LOACL,出現唯一性約束沖突,會失敗回滾,數據導入不進去,這個時候就需要加ignore或者replace來導入數據。

測試如下:


1)本地服務器導入本地服務器文本

mysql> show create table tmp_loaddata/G;

*************************** 1. row ***************************

Table: tmp_loaddata

Create Table:CREATE TABLE `tmp_loaddata` (

`id` int(11) NOT NULL,

`name` varchar(10) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

ERROR:

No query specified

mysql>select * from tmp_loaddata;

+----+------+

| id | name |

+----+------+

|1 | test |

+----+------+

1 row in set (0.00 sec)

mysql>

mysql>system cat /home/zhuxu/1.txt

1,new update

2,new update

mysql>

mysql>LOAD DATA INFILE '/home/zhuxu/1.txt' INTO TABLE tmp_loaddata FIELDS TERMINATED BY ',';

ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

#出現唯一性約束沖突,會失敗回滾

mysql>select * from tmp_loaddata;

+----+------+

| id | name |

+----+------+

|1 | test |

+----+------+

1 row in set (0.00 sec)

mysql>LOAD DATA INFILE '/home/zhuxu/1.txt' IGNOREINTO TABLE tmp_loaddata FIELDS TERMINATED BY ',';

#使用IGNORE對于沖突的數據丟棄掉。

mysql>select * from tmp_loaddata;

+----+------------+

| id | name|

+----+------------+

|2 | new update |

+----+------------+

2 rows in set (0.00 sec)

mysql>LOAD DATA INFILE '/home/zhuxu/1.txt' REPLACEINTO TABLE tmp_loaddata FIELDS TERMINATED BY ',';

#使用REPLACE對于沖突的數據進行更新。

mysql>select * from tmp_loaddata;

+----+------------+

| id | name|

+----+------------+

|1 | new update |

|2 | new update |

+----+------------+

2 rows in set (0.00 sec)

2)遠程客戶端導入遠程客戶端文本

[zhuxu@xentest9-vm1 tmp]$mysql -uzhuxu -pzhuxu test -h10.254.5.151

Welcome to the MySQL monitor.Commands end with ; or /g.

Your MySQL connection id is 15

Server version: 5.1.47-log Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

This software comes with ABSOLUTELY NO WARRANTY. This is free software,

and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.

mysql>select * from tmp_loaddata;

+----+------+

| id | name |

+----+------+

|1 | test |

+----+------+

1 row in set (0.00 sec)

mysql>system cat /tmp/2.txt

1,new update

2,new update

3,new update

mysql>

mysql>LOAD DATA INFILE '/tmp/2.txt' INTO TABLE tmp_loaddata FIELDS TERMINATED BY ',';

ERROR 13 (HY000): Can't get stat of '/tmp/2.txt' (Errcode: 2)

#由于數據庫服務器沒有對應的文本文件,所以報錯。

mysql>

mysql>LOAD DATA LOCALINFILE '/tmp/2.txt' INTO TABLE tmp_loaddata FIELDS TERMINATED BY ',';

ERROR 1148 (42000): The used command is not allowed with this MySQL version

#進去mysql遠程客戶端,還需要加--local-infile=1參數指定。

mysql> exit

Bye

[zhuxu@xentest9-vm1 tmp]$mysql -uzhuxu -pzhuxu test -h10.254.5.151 --local-infile=1--show-warnings -v -v -v /

> -e "LOAD DATA LOCAL INFILE '/tmp/2.txt' INTO TABLE tmp_loaddata FIELDS TERMINATED BY ','";

--------------

LOAD DATA LOCAL INFILE '/tmp/2.txt' INTO TABLE tmp_loaddata FIELDS TERMINATED BY ','

--------------

Bye

mysql>select * from tmp_loaddata;

+----+------------+

| id | name|

+----+------------+

|2 | new update |

|3 | new update |

+----+------------+

3 rows in set (0.00 sec)

#

[zhuxu@xentest9-vm1 tmp]$mysql -uzhuxu -pzhuxu test -h10.254.5.151 --local-infile=1--show-warnings -v -v -v /

> -e "LOAD DATA LOCAL INFILE '/tmp/2.txt' IGNOREINTO TABLE tmp_loaddata FIELDS TERMINATED BY ','";

--------------

LOAD DATA LOCAL INFILE '/tmp/2.txt' IGNORE INTO TABLE tmp_loaddata FIELDS TERMINATED BY ','

--------------

Bye

mysql>select * from tmp_loaddata;

+----+------------+

| id | name|

+----+------------+

|2 | new update |

|3 | new update |

+----+------------+

3 rows in set (0.00 sec)

#

[zhuxu@xentest9-vm1 tmp]$mysql -uzhuxu -pzhuxu test -h10.254.5.151 --local-infile=1--show-warnings -v -v -v /

> -e "LOAD DATA LOCAL INFILE '/tmp/2.txt' REPLACEINTO TABLE tmp_loaddata FIELDS TERMINATED BY ','";

--------------

LOAD DATA LOCAL INFILE '/tmp/2.txt' REPLACE INTO TABLE tmp_loaddata FIELDS TERMINATED BY ','

--------------

Bye

mysql> select * from tmp_loaddata;

+----+------------+

| id | name|

+----+------------+

|1 | new update |

|2 | new update |

|3 | new update |

+----+------------+

3 rows in set (0.00 sec)


--EOF--

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 廊坊市| 安徽省| 饶河县| 怀远县| 南召县| 土默特左旗| 唐海县| 高碑店市| 沙雅县| 东乡县| 通化县| 河南省| 水城县| 措勤县| 科尔| 林芝县| 湘潭县| 淅川县| 安义县| 江阴市| 白城市| 伊川县| 和平县| 瑞安市| 沙雅县| 苗栗县| 偃师市| 罗源县| 河间市| 永登县| 肇源县| 江西省| 烟台市| 孟津县| 察哈| 延长县| 中山市| 阿勒泰市| 昭通市| 辛集市| 鹤壁市|