首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MySQL LOAD DATA INFILE 同時為其他欄位設定固定值:SET 子句與使用者變數技巧

     編輯:程式設計綜合問答

語法支援

MySQL LOAD DATA INFILE 支援 SET 子句為目標表中不在檔案內的欄位賦值。

完整範例

LOAD DATA INFILE '/path/data.txt'
INTO TABLE my_table
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n'
(a, b, c)  -- 檔案中只有 a,b,c 三欄
SET d = 'fixed_value',           -- 固定常數
    created_by = @current_user,  -- 使用者變數
    created_at = NOW();          -- 函數運算式

使用者變數注入

SET @current_user = 'admin'; -- 連線層級變數
LOAD DATA INFILE ... SET created_by = @current_user;

注意事項

  • SET 中可使用 NOW()、UUID() 等函數,但不可直接引用其他表欄位(需子查詢)。
  • 檔案欄位順序與 (a,b,c) 對應,若順序不同需調整。
  • LOCAL 關鍵字:LOAD DATA LOCAL INFILE 從客戶端讀取,需伺服器與客戶端皆啟用 local_infile=1。

參考資源

MySQL LOAD DATA INFILE 詳細教學

總結

使用 SET 子句可在 LOAD DATA 過程中為額外欄位賦固定值、使用者變數或函數結果,避免後續 UPDATE 操作,提升大量匯入效能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved