You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite UPDATE语句执行无报错但未更新数据求助

问题描述

在Linux Mint 64位系统中,我使用sqlite3编写了如下Bash脚本执行数据更新操作:

#!/bin/bash

_Sqlite_UpdateRecord() {
    local database_name="$1"
    local NameTable="$2"
    local NameColumn1="$3"
    local ok_or_not="$4"
    local NameColumn2="$5"
    local symbol_name="$6"
    local query="UPDATE '$NameTable' SET '$NameColumn1'='$ok_or_not' WHERE '$NameColumn2'='$symbol_name';"

    #echo "SQL stringa $query"
    if sqlite3 "$database_name" "$query"; then
        echo "Aggiornamento nel database riuscito."
        return 0
    else
        echo "Errore durante l'aggiornamento nel database."
        return 1
    fi
}

_Sqlite_UpdateRecord "BinCexExchangeInfo.db" "ROBOTEST" "OkorNot" "1" "symbol" "LUNAUSDT"  

但脚本未生效,我尝试在SQLite浏览器中直接执行SQL语句:

UPDATE 'ROBOTEST' SET 'OkorNot'='1' WHERE 'symbol'='LUNAUSDT';

执行结果显示:

Execution finished without errors.
Result: query executed successfully. Took 0ms, 0 rows affected
At line 1:
UPDATE 'ROBOTEST' SET 'OkorNot'='1' WHERE 'symbol'='LUNAUSDT';  

无报错提示,但刷新表后未看到数据更新,请问这是什么原因?

原因及解决方案
  • 核心问题:SQL语句中给表名、列名添加了单引号,SQLite会将带单引号的表/列名识别为字符串字面量,而非实际的表和列引用。这导致你的UPDATE语句实际上在操作一个不存在的表和列,因此不会报错,但也不会修改任何数据行。
  • 修复方法:移除表名和列名的单引号。如果表名或列名包含特殊字符(如空格、SQL关键字),可以用反引号(`)或双引号包裹,但你的表和列名均为常规命名,直接去掉单引号即可。

修复后的Bash脚本:

#!/bin/bash

_Sqlite_UpdateRecord() {
    local database_name="$1"
    local NameTable="$2"
    local NameColumn1="$3"
    local ok_or_not="$4"
    local NameColumn2="$5"
    local symbol_name="$6"
    # 移除表名和列名的单引号
    local query="UPDATE $NameTable SET $NameColumn1='$ok_or_not' WHERE $NameColumn2='$symbol_name';"

    #echo "SQL stringa $query"
    if sqlite3 "$database_name" "$query"; then
        echo "数据库更新成功。"
        return 0
    else
        echo "数据库更新失败。"
        return 1
    fi
}

_Sqlite_UpdateRecord "BinCexExchangeInfo.db" "ROBOTEST" "OkorNot" "1" "symbol" "LUNAUSDT"  

直接执行的SQL语句改为:

UPDATE ROBOTEST SET OkorNot='1' WHERE symbol='LUNAUSDT';

内容的提问来源于stack exchange,提问作者ernesto gevara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 17:22:44