一般情況下,如果只有一條或者幾條數據插入表中,那麼我們會優先考慮使用insert into語句,但是如果是數十條甚至上千條,使用insert into語句會讓後你覺得很煩人而且比較容易出錯,Mysql提供了從外部文件導入數據的語句
load data [local] infile [path] [ignore|replace] into table table_name(col1,col2,...);
[local]可選,不加上表示是從服務器本地中加載文件。
[path]是字符串類型,用''括起來,它既可以是相對路徑也可以是絕對路徑。
[ignore|replace]表示遇到文件中的數據記錄跟已有的表記錄發生衝突時的策略,ignore表示忽略文件中的衝突數據,replace表示用文件中的衝突數據覆蓋表中的數據。
table_name可以不知道那幾個列,而默認是所有列。
一般會選擇txt作爲數據文件,此時需要注意,如果默認是所有列的話,必須在文件中給出所有列的取值,否則會拋出錯誤,列與列之間用空格或tab鍵隔開,行與行之間用回車換行。
創建一個pet表
CREATE TABLE `pet` (
`name` char(30) default NULL,
`owner` char(30) default NULL,
`species` char(10) default NULL,
`sex` enum('f','m') NOT NULL,
`birth` date default NULL,
`death` date default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
創建一個PET.txt文件
Fluffy Harold cat f 1993-02-04
Slim Benny snake m 1996-04-29
SQL語句
load data infile 'c:/PET.txt' replace into table pet(name,owner,species,sex,birth);