mysql 的load data infile。本站提示廣大學習愛好者:(mysql 的load data infile)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql 的load data infile正文
LOAD DATA INFILE語句從一個文本文件中以很高的速度讀入一個表中。假如指定LOCAL症結詞,從客戶主機讀文件。假如LOCAL沒指定,文件必需位於辦事器上。(LOCAL在MySQL3.22.6或今後版本中可用。)
為了平安緣由,當讀取位於辦事器上的文本文件時,文件必需處於數據庫目次或可被一切人讀取。別的,為了對辦事器上文件應用LOAD DATA INFILE,在辦事器主機上你必需有file的權限。
頭一回用load data infile,認為只是把拔出語句寫到一個文件裡,然後用load data infile把文件傳入數據庫就OK了,因而生成了一個內容相似同n句 insert into table_name (`id`,`name`,`content`) values (1,"a","abc"),(2,"b","abc"),(3,"c","abc");構成的.sql文件。然後在PHP中履行 LOAD DATA INFILE 'file_name.sql' INTO TABLE table_name;發明老是履行失足,真暈,不曉得怎樣回事,只好去再具體地讀一下mysql的運用手冊:
假如你指定一個FIELDS子句,它的每個子句(TERMINATED BY, [OPTIONALLY] ENCLOSED BY和ESCAPED BY)也是可選的,除你必需至多指定他們之一。
假如你不指定一個FIELDS子句,缺省值與假如你如許寫的雷同:
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
假如你不指定一個LINES子句,缺省值與假如你如許寫的雷同:
LINES TERMINATED BY '\n'
換句話說,缺省值招致讀取輸出時,LOAD DATA INFILE表示以下:
在換行符處尋覓行界限
在定位符處將行分進字段
不要希冀字段由任何引號字符封裝
將由“\”開首的定位符、換行符或“\”說明是字段值的部門字面字符
才曉得本來我的sql裡的內容其實不是依照 load data infile的缺省設置來寫的, 例如缺省設置下,每句拔出語句裡的字段是由制表符離隔且內容不以任何引號封裝(也就是括起來)的,但我的是由逗號離隔且有雙引號括起來的,難怪會履行失足。
因而,將sql履行語句寫成mysql_query('load data local infile "file_name.sql" into table `table_name` FIELDS TERMINATED BY "," ENCLOSED BY \'"\' ESCAPED BY "\\\" LINES TERMINATED BY "\n" STARTING BY ""');
這會算是履行勝利了,勝利地往指定的數據內外拔出了許多筆記錄,可是又發明了一個成績,拔出的數據雜亂無章的,字段與要拔出的內容不相符我的請求,並且有很多多少是把字段名給拔出到字段外面去了,唉,只好再回頭去又讀了一遍mysql中的load data infile用法,終究弄明確了,本來file_name.sql外面只須要按必定格局把內容寫出來就好了,不是把全部sql履行語句都寫出來的,真笨!^_^
因而,把內容換成了
1,"a","abc"
2,"b","abc"
3,"c","abc"
並且內容要與數據內外的字段從數目上溫柔序上都要嚴厲對應
在當地辦事器(我用的是WINDOW主機)上測試了一下,OK,操作勝利!
然後把法式傳到收集辦事器上(LINUX主機),一履行,提醒:
Can't get stat of ……'' (Errcode: 13)
開端還認為是sql文件權限或許是mysql的root用戶權限的成績,後來想纰謬呀,mysql的root用戶是超等用戶,確定有權限的,那成績就出在sql文件的權限上,後來把sql的權限改成777,履行操作後照樣不可。
網上搜刮了一下,有說把文件放在/var/lib/mysql裡就好了,一試,果真可以,可是我又弗成能在PHP網頁中把sql文件生成放到/var/lib/mysql下,費盡了心思,最初終究在網上搜刮到一個處理方法:
應用LOCAL將比讓辦事器直接存取文件慢些,由於文件的內容必需從客戶主機傳送到辦事器主機。在另外一方面,你不須要file權限裝載當地文件。
你也能夠應用mysqlimport適用法式裝載數據文件;它由發送一個LOAD DATA INFILE敕令到辦事器來運作。 --local選項使得mysqlimport從客戶主機上讀取數據。假如客戶和辦事器支撐緊縮協定,你能指定--compress在較慢的收集上取得更好的機能。
其實方法簡略得很,那就是把load data infile寫成load data local infile 就OK啦。
以下是內容彌補:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[FIELDS
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char' ]
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number LINES]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]]
LOAD DATA INFILE 語句以很高的速度從一個文本文件中讀取行到一個表中。文件名必需是一個文字字符串。
關於INSERT 與LOAD DATA INFILE 的效力和進步LOAD DATA INFILE 速度的更多信息,參考治理員手冊中的加快INSERT 語句 。
體系變量character_set_database 所指出的字符集被用來說明文件中的信息。SET NAMES 和設置character_set_client 不會影響輸出的說明。
用戶也能夠應用import 適用法式裝載數據文件;它經由過程發送一個LOAD DATA INFILE 敕令到辦事器來完成。--local 選項使得import 從客戶端主機讀取數據文件。假如客戶端與辦事器支撐緊縮協定,用戶可以指定--compress 選項,以在較慢的收集中取得更好的機能。參考治理員手冊中的import — 數據導入法式 。
假如用戶指定症結詞LOW_PRIORITY,LOAD DATA 語句的履行將會被延遲,直到沒有其它的客戶正直在讀取表。
假如一個GSSYS 表知足同時拔出的前提(即該表在中央有余暇塊),而且您對這個GSSYS 表指定了CONCURRENT,則當LOAD DATA 正在履行時,其它線程會從表中從新獲得數據。即便沒有其它線程在同時應用本表格,應用本選項也會稍微影響LOAD DATA 的機能。
假如指定了LOCAL 症結字,它將對銜接的客戶端做出說明:
• 假如指定了LOCAL,客戶端主機上的客戶端組件讀取文件並發送到辦事器。可以給出文件的完全途徑以肯定其准確地位。假如給出的是絕對途徑,則文件名是絕對於客戶端組件啟動時地點的目次。
• 假如沒有指定LOCAL,文件是位於辦事器的主機上,而且直接被辦事器讀取。
當從辦事器主機定位文件時,辦事器應用以下規矩:
• 假如給定完全的途徑,辦事器應用該途徑名。
• 假如給定一個或多個前置構件的絕對途徑,辦事器以絕對辦事器的數據目次搜刮文件。
• 假如給定沒有前置構件的文件名,辦事器從以後數據庫的數據庫目次搜索文件。
留意:
這些規矩意味著,一個以'/gsfile.txt' 給出的文件是從辦事器的數據目次中讀取的,但是,以`gsfile.txt' 給出的一個文件是從以後數據庫的數據目次下讀取的。舉例來講,上面的LOAD DATA 語句從db1 數據庫目次下讀取文件'data.txt',由於db1 是以後數據庫,即便語句明白把文件載入到db2數據庫中的內外,也會從db1 目次中讀取:
sqlcli> USE db1;
sqlcli> LOAD DATA INFILE 'data.txt' INTO TABLE db2.gs_table;
留意:
指定Windows 途徑名時,應用的是斜線而不是反斜線。假如要用反斜線,必需雙寫。
出於平安的緣由,當讀取位於辦事器上的文本文件時,文件必需位於數據庫目次下或許可以被一切用戶讀取。也就是說,當對辦事器上的文件履行LOAD DATA INFILE 時,用戶必需取得FILE 權限。
參考治理員手冊中的GBase 供給的權限 。
與辦事器直接拜訪文件比擬,應用LOCAL 速度略微慢些,這是由於文件的內容必需經由過程客戶端到辦事器的銜接傳送。另外一方面,關於當地文件,不須要取得FILE 權限。
只要辦事器和客戶端都許可時,LOCAL 才可以任務。例如,假如kernel 啟動時,--local-infile=0,則LOCAL 不克不及任務。參考治理員手冊中的LOAD DATA LOCAL 的平安成績 。
REPLACE 和IGNORE 症結字處置那些與已存在的主鍵值反復的輸出記載。
假如指定了REPLACE,輸出即將會取代已存在的行(也就是說,主索引值雷同的即將作為存在的行)。參考REPLACE 語法 。
假如指定了IGNORE,與已存外行主鍵值反復的輸出即將被跳過。假如不指定兩者中的任一個,則操作行動將依附能否指定了LOCAL 症結字。沒有指定LOCAL,則假如發明有反復的鍵值,將發生一個毛病,並疏忽文本文件的其他部門。假如指定了LOCAL,則缺省的操作行動將與指定了IGNORE 的雷同;這是由於,在操作進程中,辦事器沒有方法終止文件的傳送。
假如願望裝載操作中疏忽外鍵束縛,可以在履行LOAD DATA 之前履行SET FOREIGN_KEY_CHECKS=0 語句。
假如用戶在一個空的GsSYS 表上應用LOAD DATA INFILE,一切非獨一索引會以分批方法被創立(就像REPAIR)。當有很多索引時,這平日可使LOAD DATA INFILE 更快一些。正常情形下異常快,但也有極真個情形,用戶可以經由過程在裝載文件之前應用ALTER TABLE .. DISABLE KEYS 封閉它們和在裝載文件以後應用ALTER TABLE .. ENABLE KEYS 重建索引,從而加快索引創立。參考治理員手冊中的加快INSERT 語句 。
LOAD DATA INFILE 是SELECT ... INTO OUTFILE 的反操作。參考SELECT 語法 。 應用SELECT ... INTO OUTFILE 將數據從一個數據庫寫到一個文件中。應用LOAD DATA INFILE 讀取文件到數據庫中。兩個敕令的FIELDS 和LINES 子句的語法是一樣的。兩個子句都是可選的,然則假如兩個同時被指定,FIELDS 子句必需湧現在LINES 子句之前。
假如用戶指定一個FIELDS 子句,它的子句 (TERMINATED BY、[OPTIONALLY] ENCLOSED BY 和ESCAPED BY) 也是可選的,不外,用戶必需至多指定它們中的一個。
假如用戶沒有指定一個FIELDS 子句,缺省時好像應用以下語句:
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
假如用戶沒有指定一個LINES 子句,缺省時好像應用以下語句:
LINES TERMINATED BY '\n' STARTING BY ''
換句話說,當讀取輸出時,缺省的LOAD DATA INFILE 表示以下:
• 在換行符處尋覓行的界限。
• 不漏掉任何行前綴。
• 在制表符處將行分別成字段。
• 不以為字段由任何引號字符封裝。
• 將有 “\” 開首的定位符、換行符或`\' 說明為字段值的一個文字字符。
相反的,當寫入輸入時,缺省值招致SELECT ... INTO OUTFILE 表示以下:
• 在字段值間加上制表符。
• 不消任何引號字符封裝字段。
• 應用 “\” 本義湧現在字段值中的定位符、換行符或`\' 字符實例。
• 外行的開頭處加上換行符。
留意:
為了寫FIELDS ESCAPED BY '\\',用戶必需指定兩個反斜線,該值會作為一個反斜線被讀入。
留意:
假如是Windows 體系的文本文件,能夠必需應用LINES TERMINATED BY '\r\n' 來讀取文件,這是由於Windows 體系的特色是應用兩個字符作為行終止符。在某些法式中,在書寫文件時,能夠應用\r 作為行終止符,如寫字板。讀取這類文件時,須要用LINES TERMINATED BY '\r'。
假如一切的將要讀取的行都有效戶願望疏忽的前綴,可使用LINES STARTING BY 'prefix_string' 來跳過此前綴(和在它後面的任何內容)。假如一個行沒有此前綴,則全部行都被跳過。留意,prefix_string 能夠外行的中央!
例如:
sqlcli> LOAD DATA INFILE '/tmp/test.txt'
-> INTO TABLE test LINES STARTING BY "xxx";
用它讀取包括有上面內容的文件:
xxx"Row",1
something xxx"Row",2
則可以獲得數據(“row”,1)和(“row”,2)。
IGNORE number LINES 這個選項可以用來疏忽文件開首部門的行。例如,可以用IGNORE 1 LINES 來跳過含有列名的的頭一行:
sqlcli> LOAD DATA INFILE '/tmp/test.txt'
-> INTO TABLE test IGNORE 1 LINES;
當用戶一前一後地應用SELECT ... INTO OUTFILE 和LOAD DATA INFILE 將數據從一個數據庫寫到一個文件中,然後再從文件中將它讀入數據庫中時,兩個敕令的字段和行處置選項必需婚配。不然,LOAD DATA INFILE 將不克不及准確地說明文件內容。假定用戶應用SELECT ... INTO OUTFILE 以逗號分隔字段的方法將數據寫入到一個文件中:
sqlcli> SELECT * INTO OUTFILE 'data.txt'
-> FIELDS TERMINATED BY ','
-> FROM table2;
為了將由逗號分隔的文件讀回時,准確的語句應當是:
sqlcli> LOAD DATA INFILE 'data.txt' INTO TABLE table2
-> FIELDS TERMINATED BY ',';
假如用戶試圖用上面所示的語句讀取文件,它將不會任務,由於敕令LOAD DATA INFILE 以定位符辨別字段值:
sqlcli> LOAD DATA INFILE 'data.txt' INTO TABLE table2
-> FIELDS TERMINATED BY '\t';
能夠的成果是每一個輸出即將被說明為一個零丁的字段。
LOAD DATA INFILE 也能夠被用來讀取內部源取得的文件。例如,dBASE 格局的文件,字段以逗號分隔並以雙引號包抄著。假如文件中的行以一個換行符終止,那末上面所示的可以解釋用戶將用來裝載文件的字段和行處置選項:
sqlcli> LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
-> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
-> LINES TERMINATED BY '\n';
任何字段和行處置選項都可以指定一個空字符串('')。假如不是空的,FIELDS [OPTIONALLY] ENCLOSED BY 和FIELDS ESCAPED BY 值必需是一個單個字符。FIELDS TERMINATED BY 和LINES TERMINATED BY 值可以跨越一個字符。例如,為了寫入由回車換行符終止的行,或讀取包括如許的行的文件,應當指定一個LINES TERMINATED BY '\r\n' 子句。
FIELDS [OPTIONALLY] ENCLOSED BY 掌握字段的援用。關於輸入(SELECT ... INTO OUTFILE),假如用戶省略單詞OPTIONALLY,一切的字段被ENCLOSED BY 字符包抄。如許的一個輸入文件(以一個逗號作為字段分界符)示例以下:
"1","a string","100.20"
"2","a string containing a , comma","102.20"
"3","a string containing a \" quote","102.20"
"4","a string containing a \", quote and comma","102.20"
假如用戶指定OPTIONALLY,ENCLOSED BY 字符僅被用於包裝諸如含有字符串類型的字段(諸如CHAR,BINARY,TEXT 或ENUM):
1,"a string",100.20
2,"a string containing a , comma",102.20
3,"a string containing a \" quote",102.20
4,"a string containing a \", quote and comma",102.20
留意:
在一個字段值中湧現的ENCLOSED BY 字符,經由過程用ESCAPED BY 字符作為其前綴對其本義。同時也要留意,假如用戶指定一個空的ESCAPED BY 值,能夠會發生不克不及被LOAD DATA INFILE 准確讀出的輸入文件。例如,假如本義字符為空,下面顯示的輸入將釀成以下顯示的輸入。請留意第四行的第二個字段,它包括一個跟在一個引號後的逗號,看起來 像是一個字段的終止:
1,"a string",100.20
2,"a string containing a , comma",102.20
3,"a string containing a " quote",102.20
4,"a string containing a ", quote and comma",102.20
關於輸出,ENCLOSED BY 字符假如存在,它將從字段值的尾部被剝離。(不論OPTIONALLY 能否被指定,都是如許;關於輸出說明,OPTIONALLY 不會影響它。)假如在ENCLOSED BY 字符前存在ESCAPED BY 字符,那末它將被說明為以後字段值的一部門。
假如字段以ENCLOSED 字符開端,只需前面緊隨著字段或行TERMINATED BY 序列 ,這個字符實例就被以為用來終止一個字段值。為了明白,假如在字段中要應用ENCLOSED BY 字符,可以反復寫兩遍該字符,那末它們會被說明成單個ENCLOSED BY字符處置。例如,假如指定ENCLOSED BY '"',引號將做以下處置:
"The ""BIG"" boss" -> The "BIG" boss
The "BIG" boss -> The "BIG" boss
The ""BIG"" boss -> The ""BIG"" boss
FIELDS ESCAPED BY 掌握若何寫入或讀出特別字符。假如FIELDS ESCAPED BY 字符不是空的,它將被用於做為以下輸入字符的前綴:
• FIELDS ESCAPED BY 字符
• FIELDS [OPTIONALLY] ENCLOSED BY 字符 。
• FIELDS TERMINATED BY 和LINES TERMINATED BY 值的第一個字符。
• ASCII 0 (現實上在本義字符後寫上ASCII '0',而不是一個零值字節)。
假如FIELDS ESCAPED BY 字符為空,那末將沒有字符被本義而且NULL 值仍輸入為NULL,而不是\N。指定一個空的本義字符能夠不是一個好的辦法,特殊是用戶的數據字段值中包括適才列表中的任何字符時。
關於輸出值,假如FIELDS ESCAPED BY 字符不是空字符,則湧現這類字符時會被剝離,然後以下字符被作為字段值的一部門。破例情形是,被本義的‘0'或‘N'(例如,\0 或\N,此時本義符為‘\')。這些序列被懂得為ASCII NUL(一個零值字節)和NULL。用於NULL 處置的規矩在本節的後部停止解釋。
關於更多的 “\” 本義語法信息,檢查文字值 。
在某些情形下,字段與行處置互相感化:
• 假如LINES TERMINATED BY 是一個空字符串,FIELDS TERMINATED BY 長短空的,則各行以FIELDS TERMINATED BY作為開頭。
• 假如FIELDS TERMINATED BY 和FIELDS ENCLOSED BY 值都是空的(''),那末一個固定行(無定界符) 格局將被應用。用固定行格局時,在字段之間不應用分隔符(然則用戶依然有一個行終結符)。列值的寫入和讀取應用列的“顯示”寬度。例如,假如一個列被界說 為INT(7),列的值將應用7 個字符的字段被寫入。關於輸出,列值經由過程讀取7 個字符來取得。
LINES TERMINATED BY 依然用於分別行。假如一行沒有包括一切的字段,那末列的殘剩部門被設置為它們的默許值。假如用戶沒有一個行終結符,用戶應當設置它為''。在這類情形下,文本文件必需包括每行的一切的字段。
固定行格局也影響對NULL 值的處置;見上面。留意,假如用戶正在應用一個多字節的字符集,固定長度格局將不克不及任務。
NULL 值的處置有許多,取決於用戶所應用的FIELDS 和LINES 選項:
• 關於缺省的FIELDS 和LINES 值,輸入時,NULL 被寫成\N,當讀入時,\N 被作為NULL 讀入(假定ESCAPED BY 字符為 “\”)。
• 假如FIELDS ENCLOSED BY 不是空值,則包括以文字詞語NULL 為值的字段被作為NULL 值讀取。這與被FIELDS ENCLOSED BY 字符包抄的詞語NULL分歧。該詞語被作為字符串'NULL'讀取。
• 假如FIELDS ESCAPED BY 是空的,NULL 值被寫為詞NULL。
• 采取固定行格局時(當FIELDS TERMINATED BY 和FIELDS ENCLOSED BY 均為空值時采取),NULL 被作為一個空字符串寫入。留意,這會招致在被寫入文件時,表中的NULL 值和空字符串均沒法鑒別,這是由於二者都被作為空字符串寫入。假如用戶須要在讀取文件並前往時可以或許分辯二者,則用戶不該應用固定行格局。
一些不克不及被LOAD DATA INFILE 支撐的情形:
• 固定尺寸的記載行(FIELDS TERMINATED BY 和FIELDS ENCLOSED BY 均為空)和BLOB 或TEXT 列。
• 假如用戶指定一個分隔符與另外一個雷同,或是另外一個的前綴,LOAD DATA INFILE 能夠會不克不及准確地說明輸出。例如,以下的FIELDS 子句將會發生成績:
FIELDS TERMINATED BY '"' ENCLOSED BY '"'
•
• 假如FIELDS ESCAPED BY 為空,一個字段值中包括有FIELDS ENCLOSED BY 或LINES TERMINATED BY 前面緊隨著FIELDS TERMINATED BY 的值時,將會惹起LOAD DATA INFILE 過早地停滯讀取一個字段或一行。這是由於LOAD DATA INFILE 不曉得字段或行值在哪裡停止。
上面的例子將裝載persondata 表的一切列:
sqlcli> LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata;
默許情形下,當LOAD DATA INFILE 語句後沒有供給字段列時,那末LOAD DATA INFILE 以為輸出行包括表列中一切的字段。假如用戶願望裝載表中的某些列,那指定一個字段列表:
sqlcli> LOAD DATA INFILE 'persondata.txt'
-> INTO TABLE persondata (col1,col2,...);
假如輸出文件的字段次序分歧於表中列的次序,用戶也必需指定一個字段列表。不然GBase 不曉得若何將輸出字段與表中的列婚配。
Column 列表可以包括列名或許用戶變量,而且支撐SET 子句。這使得能用輸出值給用戶變量賦值, 並在付與列的成果之前對這些值停止變換。
SET 子句中的用戶變量有多種用處。上面的例子將數據文件的第一列直接作為t1.column1 的值,並將第二列付與一個用戶變量,此變量在作為t2.column2 的值之進步行一個除法操作
LOAD DATA INFILE 'file.txt'
INTO TABLE t1
(column1, @var1)
SET column2 = @var1/100;
SET 子句可以供給不是起源於輸出文件的值。上面的語句將column3 設置為以後的日期和時光:
LOAD DATA INFILE 'file.txt'
INTO TABLE t1
(column1, column2)
SET column3 = CURRENT_TIMESTAMP;
經由過程將一個輸出值付與一個用戶變量,可以將此輸出值拋棄,而且不將此值付與表的一個列:
LOAD DATA INFILE 'file.txt'
INTO TABLE t1
(column1, @dummy, column2, @dummy, column3);
應用列/變量列表和SET子句要遭到一上限制:
• SET 子句中的賦值列名應該只能在賦值操作符的右邊。
• 在SET 賦值語句中,可使用子查詢。此查詢前往一個將被付與列的值,它能夠僅僅是一個標量查詢。不克不及用子查詢去查詢將被導入的表。
• 關於列/變量列表或SET 子句,因為應用IGNORE 子句而被疏忽的行就不會被處置。
• 因為用戶變量沒有顯示寬度,當導入的數據是行固定格局時,將不克不及應用用戶變量。
當處置輸出行時,LOAD DATA 將行分為域,假如供給了列/變量列表和SET 子句,將依照它去應用這些值。然後獲得的行就拔出到表中。假如此表有BEFORE INSERT 或AFTER INSERT 觸發器,則拔出行前後將分離激活它們。
假如輸出的記載行有太多的字段,過剩的字段將被疏忽,並增長正告的數量。
假如一個輸出行的字段較少,沒有輸出字段的列將被設置為缺省值。缺省值賦值在CREATE TABLE 語法 中被描寫。
一個空的字段值分歧於字段值喪失的說明:
• 關於字符串類型,列被設置為空字符串。
• 關於數字類型,列被設置為0。
• 關於日期和時光類型,列被設置為合適列類型的“零”值。參考日期和時光類型 。
假如在一個INSERT 或UPDATE 語句中明白地將一個空字符串賦給一個字符串、數字或日期或時光類型,用戶會獲得與下面雷同的成果。
只要在兩種情形下TIMESTAMP 列被設置為以後日期和時光。一種情形時當列有一個NULL 值(也就是\N)時;另外一種情形是(僅關於第一個TIMESTAMP 列),當一個字段清單被指准時,TIMESTAMP 列會從字段清單中被略去。
LOAD DATA INFILE 以為一切的輸出均是字符串,因此,關於ENUM 或SET 列,用戶不克不及以INSERT 語句的情勢為其設置數字值。一切的ENUM 和SET 必需以字符串指定!
當LOAD DATA INFILE 查詢停止時,它前往信息字符串,格局以下:
Records: 1 Deleted: 0 Skipped: 0 Warnings: 0