MySQLにCSVインポートがあり、最初の重複エントリエラーが発生した後、MySQLにインポートする前に重複をチェックする機能を探しています。
私は走っていColdfusion8, MySQL5.0.88
ます。
私のインポートは、実際にメインデータベースにコミットする前に、最初に中間テーブル(import_pricat_csv)に入ります。中間テーブルに入力するとき、私はすべてのインポート検証を次のように実行しています。
<cfquery datasource="db">
UPDATE import_pricat_csv
SET error= "true", errorMsg= "invalid EAN"
WHERE iln = <cfqueryparam value = "#Session.loginID#" cfsqltype="cf_sql_varchar" maxlength="13">
AND error= "no"
AND (ean is null OR NOT (ean REGEXP '[0-9]{13}' OR ean REGEXP '[0-9]{12}'))
</cfquery>
これにより、import_pricatがデータベースにコミットされる前に、エラーがないかチェックされます。MySQLにアクセスできることはわかってINSERT IGNORE
いますが、インポートエラーレポートを作成するには、このようにする必要があります。
ean
インポートするがすでに実際のデータベーステーブルにあるかどうかを確認するルールを追加する必要がありますproducts
。
私はこれを試していますが、機能しません:
<cfquery datasource="db">
UPDATE import_pricat_csv
SET error= "yes", errorMsg= "duplicate EAN"
WHERE iln = <cfqueryparam value = "#Session.loginID#" cfsqltype="cf_sql_varchar" maxlength="13">
AND error= "no"
AND ean IN (SELECT p.ean FROM products AS p WHERE p.ean = ean )
</cfquery>
私が間違っていることについて何か考えはありますか?
ありがとう!