sqlite更新无法正常工作,但不返回错误

0yycz8jy  于 2023-04-21  发布在  SQLite
关注(0)|答案(1)|浏览(183)

嗨,我有这个脚本在linux薄荷64与sqlite3

#!/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';

但如果我去表和做refrash没有新的数据更新,为什么??在这里你可以下载我的数据库进行测试https://mega.nz/file/OttAxB7C#qe5r28fxfNibJAvxgTrXzl7Y_xI88O4lmb-tLLgffPM

g9icjywg

g9icjywg1#

我不熟悉SQLlite中的有效标识符引用,但我想知道标识符(即表和列名)周围的单引号是否存在问题:

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

在我使用过的SQL方言中,标识符通常用双引号或方括号括起来;这给我们留下了3种可能的解决方案:

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

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

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

看看你的一些其他问题,似乎你通常不引用你的标识符,所以我希望第一个解决方案(以上)是足够的。

**注意:**我假设(至少)有一行symbol = 'LUNAUSDT'

相关问题