我正在使用MySQL 5.0.88/Coldfusion
并有一个临时表,我正在将 CSV 文件加载到其中。该表经过验证,然后导入到主数据库。
我需要检查临时表中的重复导入。我正在检查这样的临时表:
<cfquery datasource="db">
UPDATE import_temp
SET error= "true", errorMsg = "missing info"
WHERE user = <cfqueryparam value = "#Session.user#" cfsqltype="cf_sql_varchar" maxlength="13">
AND error = "false"
AND info = ""
</cfquery>
问题:
是否可以像这样检查临时表中的重复 ID:
<cfquery datasource="db">
UPDATE import_temp
SET error = "true", errorMsg = "duplicate id"
WHERE user = <cfqueryparam value = "#Session.user#" cfsqltype="cf_sql_varchar" maxlength="13">
AND error = "false"
AND id IN (SELECT i.id FROM import_temp AS i WHERE i.id = id)
</cfquery>
现在这不起作用,但是有没有办法让它起作用并将错误字段设置为 false 像这样?on duplicate key
或者是加载 CSV 文件时使用的唯一方法?