SQL - 替换或跳过重复的条目

时间:2013-09-10 00:01:34

标签: python mysql sql

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

  

insertion =(“INSERT IGNORE INTO storage_folders(folder_path,company)VALUES('”+ filepath +“','”+ company +“')”)

所以我希望表拥有唯一的folder_paths,没有重复项。 “公司”专栏不一定(也不应该)是唯一的。任何人都可以指出我如何做到这一点的正确道路?

1 个答案:

答案 0 :(得分:0)

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

"INSERT INTO storage_folders 
 SET folder_path='" + filepath + "', company='" + company + '"
 ON DUPLICATE KEY UPDATE company='" + company + "'"