Mysql
如何對特定列使用 LOAD DATA LOCAL INFILE?
我有一個文本文件目錄,因為文件名是
id
,並且該表的內容text
是:CREATE TABLE texts ( ID int(11) unsigned, Added date, Text MEDIUMTEXT, PRIMARY KEY(ID) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci
我使用 PHP glob 函式
INSERT
逐個文件(逐行)查找文件INSERT INTO texts (ID,Added,Text) VALUES ($id,CURDATE(),'$text')";
$id
是文件名,也是文件$text
的全部內容。如何使用
LOAD DATA LOCAL INFILE
to 直接INSERT
進入數據庫並避免將大文本讀入 PHP 變數?
Mysql 可以使用使用者定義的變數執行以下操作
LOAD DATA LOCAL INFILE '/your_path/yourfule.csv' INTO TABLE texts FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' ( @ID , @Text ) SET `ID` = @ID , `Added` = CURDATE() , `Text` = @Text ;
請檢查 MySQL 是否允許從該路徑插入數據。
而且您可能還必須更改INFILE的選項
CREATE
單獨的負載表LOAD
進那張桌子UPDATE main JOIN temp ON ... SET MAIN... WHERE ...
– 即把你需要的東西從臨時表轉移到真實表中。