搜尋

首頁  >  問答  >  主體

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粉956441054321 天前350

全部回覆(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
  • 取消回覆