0

Python 用の MySQLConnector を使用して、特定のファイル ツリー内のすべてのファイルパスを定期的に (cronjob などで) SQL テーブルに記録しています。私がやろうとしているのは、ファイルパスがテーブルに新しい場合はテーブルに書き込むことです。それ以外の場合は、既存のファイルパスが見つかった場合はテーブルを更新するため、エントリが重複しません。INSERT IGNORE と ON DUPLICATE KEY UPDATE を試してみましたが、失敗しているため、ニーズに合わせて使用​​する方法がわかりません。特にコードのビットは次のとおりです。

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

したがって、重複のない一意の folder_paths を持つテーブルが必要です。"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 に答える