0

我正在使用 MySQLConnector for Python 定期将某个文件树中的所有文件路径记录到 SQL 表中(例如在 cronjob 等上)。如果文件路径对表来说是新的,我想要做的是写入表,否则如果它找到预先存在的文件路径,则更新表,因此没有重复的条目。我已经尝试过 INSERT IGNORE 和 ON DUPLICATE KEY UPDATE 但不明白如何使用它来满足我的需求,因为它一直让我失望。特别是代码位是:

insert = ("INSERT IGNORE INTO storage_folders (folder_path, company) VALUES ('" + filepath + "', '" + company + "')")

所以我希望表拥有唯一的文件夹路径,没有重复。“公司”列不必(也不应该)是唯一的。谁能指出我如何做到这一点的正确道路?

4

1 回答 1

0

我更喜欢 SET 语法而不是() VALUES (),您只需要确保您正在更新不是主键的列。所以这假设这folder_path是主键

"INSERT INTO storage_folders 
 SET folder_path='" + filepath + "', company='" + company + '"
 ON DUPLICATE KEY UPDATE company='" + company + "'"
于 2013-09-10T02:26:22.023 回答