MySql查询语法错误c

MySql查询语法错误c,mysql,Mysql,每次插入新数据时,我都需要CCMaster保持唯一性,尝试各种方法,如果不喜欢,但没有任何效果。问题是insert语句中的WHERE部分出错,@CCMaster不存在。。。。要么使用INSERT INTO。。值构造或使用INSERT INTO。。从…中选择。。但不能两者混合。如果使用INSERT INTO..,则WHERE子句不是应用程序。。价值观构成。您可能希望更改查询,如 "INSERT IGNORE INTO DataBase.Table (OrderNumber, CCHolder, C

每次插入新数据时,我都需要CCMaster保持唯一性,尝试各种方法,如果不喜欢,但没有任何效果。

问题是insert语句中的WHERE部分出错,@CCMaster不存在。。。。要么使用INSERT INTO。。值构造或使用INSERT INTO。。从…中选择。。但不能两者混合。如果使用INSERT INTO..,则WHERE子句不是应用程序。。价值观构成。您可能希望更改查询,如

"INSERT IGNORE INTO DataBase.Table
(OrderNumber, CCHolder, CCPartial, CCEci, CCTransDate, 
CCPmtRef,CCStatus,CCMaster) " +
"VALUES (@orderNumber, @CCholder, 
@CCpartial, @CCeci, @CCtransDate, @CCpmtRef, @CCstatus, 
@CCmaster) " +
"WHERE @CCmaster NOT EXISTS (SELECT CCMaster FROM 
DataBase.Table)";

这里没有足够的上下文。这看起来对你来说不是一个好的解决方案,但是你试过类似的方法吗


其中@CCmaster不在,请从数据库中选择CCmaster。表

请向我们展示整个方法。另外,要清楚代码在做什么,以及它与您希望它做什么有什么不同。我需要将数据从excell工作表输入数据库,当我删除WHERE子句时,一切正常,但我需要找到一种方法来检查不在数据库中复制CCMaster值。唯一的约束?是的,CCMaster有唯一的索引,但我试图检查它在查询中是否唯一,然后将其移动到数据库中。我可以不在查询中签入它就执行此操作吗?我尝试了“不在”,但它不起作用。当我删除WHERE子句时,我需要将excell工作表中的数据输入数据库,一切正常,但我需要找到一种方法来检查数据库中的CCMaster值是否重复;查看与MySQL服务器版本对应的手册,了解在第1行“WHERE 10386744 NOT IN SELECT CCMaster FROM DataBase.Table”附近使用的正确语法。当我删除WHERE子句时,一切正常,但我使用excel工作表中的数据填充表。因此,使用select的这种方式对我不起作用,因为我没有一个表可以从中获取参数。
INSERT IGNORE INTO DataBase.Table
(OrderNumber, CCHolder, CCPartial, CCEci, CCTransDate, 
CCPmtRef,CCStatus,CCMaster) 
SELECT @orderNumber, @CCholder, 
@CCpartial, @CCeci, @CCtransDate, @CCpmtRef, @CCstatus, 
@CCmaster FROM DataBase.Table
WHERE @CCmaster <> CCMaster