当前位置: 首页 > 知识库问答 >
问题:

我只是找不到这个MySQL“存在()”错误的合适解决方案

籍弘伟
2023-03-14

我已经搜索了stackoverflow大约一个小时,但没有解决方案可以解决我的问题。

我想运行这段代码:

for (var skin in body){
  connection.query(`IF NOT EXISTS(SELECT MarketName FROM Skins WHERE MarketName = ?);
            THEN
                INSERT INTO Skins (MarketName) VALUES (?);
            END IF;`,[skin, skin]); }

但是如果我用nodejs运行这个,我会得到这个错误:

我会感谢你的帮助。

共有1个答案

向和歌
2023-03-14

MySQL只允许编程块中的IF语句——存储过程、触发器等。

正确的方法是在皮肤(MarketName)上创建唯一的索引或约束。这样,数据库可以确保数据的完整性。您可以这样做:

create unique index unq_skins_marketname on Skins(MarketName);

然后,尝试插入副本将导致错误。您通常可以通过执行以下操作来避免此问题:

insert into skins(marketname)
    values (?)
    on duplicate key marketname = values(marketname);  -- this is a no-op
 类似资料:
  • 我有下面的课。我试图使getConfig()返回指定的类型,然而,它只作为BaseConfig返回。假设我有扩展BaseConfig的MyConfig,我希望该方法返回MyConfig而不是BaseConfig。我真的很感激任何帮助,因为我似乎找不到合适的解决方案,为我工作。 一些其他类组成了我正在研究的系统: 另一个:

  • 我需要创建一个以id和值作为资源的ArrayList,这样我将来就可以知道给定图标在哪个id下。不幸的是,我的解决方案遇到了一个问题,如何解决? 我给出了一个错误: 错误:找不到添加(int,int)航路点图标的合适方法。添加(0,R.drawable.ic_point_默认值)

  • **Jun29, 2021 9:45:18PMorg.hibernate.版本logVersion INFO: HHH000412: HiberNate Core{5.2.8。最终}Jun29, 2021 9:45:19PMorg.hibernate.cfg.环境INFO: HHH000206:hibernate.properties未找到Jun29, 2021 9:45:19PMorg.hibe

  • 我试图用java创建一个分数计算器,我使用drop box int Joptionpane来显示算术运算,但是每当我编译代码时,总是会出现错误。 这是我得到的全部错误。 .java:47:错误:找不到适合showInputDialog(,String,int,,String[],String)的方法String input=(String)JOptionPane。showInputDialog(n

  • 问题内容: 我是Java的新手,正在尝试为Minecraft制作一个mod,但我不知道如何解决此错误: 这是我的代码: 这是怎么回事,我正在尝试使字符串“ Username”重定向到另一个类。 问题答案: Java编译器告诉您不能构造对象,因为您对构造函数的调用与任何已知的构造函数都不匹配。 具体来说,编译器发现了两个构造函数: 但您致电给: 都不匹配。

  • 附注:我试着把hadoop作为一个单节点安装,但不起作用,所以我试着把它删除,把所有的东西都作为一个双节点设置来重做,所以我不得不重新格式化NameNode。我不知道这是否会影响到这一点。 编辑1:我修正了start-all.sh命令不工作,因为我修正了.bashrc中的错误。但是,当运行start-all.sh或start-dfs.sh等时,我会收到这些错误消息。 编辑2:修正了上面的错误,我更