0
我找到了一個正確的解決方案,它可以在MySQL中使用Load Data Infile如何使用重複鍵更新。下面是我使用的代碼(從堆棧溢出得到它):MySQL:使用AI主鍵和重複鍵更新加載數據文件
CREATE TEMPORARY TABLE temporary_table LIKE employee_table;
SHOW INDEX FROM temporary_table;
DROP INDEX `PRIMARY` ON temporary_table;
LOAD DATA INFILE 'csv/employee_table'
INTO TABLE temporary_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'
(
`AutoID`, `Name`, `Age`, `Salary`
)
SHOW COLUMNS FROM employee_table;
INSERT INTO employee_table
SELECT * FROM temporary_table
ON DUPLICATE KEY UPDATE AutoID = Values(AutoID);
DROP TEMPORARY TABLE temporary_table;
上面這段代碼工作正常更新與只具有不同ID的新記錄的表。但是,當PRIMARY鍵是自動增量(AI)時,它無法工作。它表明下面的代碼不能在自動遞增PRIMARY鍵上運行。
DROP INDEX `PRIMARY` ON temporary_table
以下是錯誤消息:
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
我很困惑,因爲如果我不使用自動增量,它完美地運行。任何人都知道如何解決這個問題?提前致謝。