搜索

首页  >  问答  >  正文

pymysql 仅在不存在时插入

这是我第一次使用sql,并且仅当条目不在数据库中时才尝试插入数据。我的 sql 如下所示:

insert_query = ("IF NOT EXISTS ( SELECT 1 FROM `follows` WHERE `id_user` = '"+user_id+"' AND `id_folgt` = '"+folgt_id+"') BEGIN INSERT INTO `follows`(`id_user`, `id_folgt`) VALUES ('"+user_id+"','"+folgt_id+"')END;")

不幸的是,我遇到了语法错误

P粉956441054P粉956441054277 天前324

全部回复(1)我来回复

  • P粉811349112

    P粉8113491122024-02-27 11:19:14

    如果您只想在表中不存在该行时插入行,那么您有很多选择:

    1. 通过表达式创建唯一索引,用于检测是否存在。如果该表达式的值已存在于表中,服务器将禁止插入。

    2. 使用 INSERT .. ON DUPLICATE KEY UPDATE 和假 UPDATE 操作(例如,id = id,其中 id 是主键)。

    3. 根据 WHERE NOT EXISTS 使用 INSERT .. SELECT。仅当 WHERE 子句返回 TRUE 时才会执行插入。

    还有更多选择...

    回复
    0
  • 取消回复