Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

ECmall 批量匯入商店資料:分區與權限 SQL 實戰

編輯:Linux 教學

ECmall 後台缺乏批量建立商店功能,透過 Excel 產生 SQL 直寫資料庫,快速完成 300+ 商店的建立、分區綁定與權限授予。

資料表關係圖

  • ecm_store:商店主檔(店名、店主、狀態、建立時間等)。
  • ecm_category_store:商店-分區多對多關聯表。
  • ecm_user_priv:使用者權限表(privs='all' 表完整權限)。

Excel 公式產生 SQL

假設:A1=商店名,B1=店主ID,C1=分區ID,D1=用戶ID(與店主ID相同)。

1. 建立商店主檔

=CONCATENATE(
  "INSERT INTO ecm_store VALUES ('",
  B1, "', '", A1, "', '", A1, "', '', NULL, '', '', '', '1', '', '0', '0.00', NULL, '1', '', '1282202793', '0', NULL, '14', '1', '', NULL, NULL, NULL, '', '', '', '');"
)

產出範例:

INSERT INTO ecm_store VALUES ('14', 'A101', 'A101', '', NULL, '', '', '', '', '1', '', '0', '0.00', NULL, '1', '', '1282202793', '0', NULL, '14', '1', '', NULL, NULL, NULL, '', '', '', '');

2. 綁定商店分區

=CONCATENATE(
  "INSERT INTO ecm_category_store (cate_id, store_id) VALUES ('",
  C1, "', '", B1, "');"
)

產出範例:

INSERT INTO ecm_category_store (cate_id, store_id) VALUES ('1', '14');

3. 授予完整權限

=CONCATENATE(
  "INSERT INTO ecm_user_priv (user_id, store_id, privs) VALUES ('",
  D1, "', '", D1, "', 'all');"
)

產出範例:

INSERT INTO ecm_user_priv (user_id, store_id, privs) VALUES ('14', '14', 'all');

操作步驟與注意事項

  1. 在 Excel 整理商店名、店主ID、分區ID 三欄資料。
  2. 用上述公式分別產生三組 SQL,複製到 SQL 工具(如 phpMyAdmin、MySQL Workbench)批次執行。
  3. 欄位順序務必與資料表定義一致,建議先 DESC ecm_store 確認欄位數與型別。
  4. privs='all' 為 ECmall 內建關鍵字,代表該用戶擁有該商店所有管理權限。
  5. 執行前備份資料庫,驗證前幾筆資料無誤再全量匯入。

擴充應用

  • 同理可批量匯入商品、會員、訂單等主檔。
  • 搭配 LOAD DATA INFILE 可處理百萬級資料,效能優於逐條 INSERT。
  • 建立標準化匯入模板,後續維運可直接複用。

此技巧不限 ECmall,適用於任何無批量匯入介面的 PHP/MySQL 專案,核心在於「Excel 產生參數化 SQL」與「資料表關聯正確性驗證」。

Copyright © Windows教程網 All Rights Reserved