【问题标题】:SQLite UPDATE with Shell script使用 Shell 脚本进行 SQLite 更新
【发布时间】:2015-03-14 21:21:16
【问题描述】:

我对 SQLite 真的很陌生。 我想更新数据库中“数据”列中的 BLOB,并且我得到了它的工作: 更新 genp SET 数据= X'MyHexData' WHERE rowid=510849 因为我想从列数据中更新多个 BLOB,所以我决定编写一个 .sh 脚本:

sqlite3 my.db 'UPDATE genp SET data= X'MyHexData' WHERE rowid=510849'
当我执行此脚本时,我收到错误消息:
SQL 错误:没有这样的列:XMyHexData

为什么 SQLite 认为我的十六进制数据应该是列?我的错误在哪里?如果我在 SQLite 的命令行 Shell 中运行它,它就可以工作。

编辑: 我得到了它的工作。像这样:

sqlite3 my.db "UPDATE genp SET data= X'MyHexData' WHERE rowid= '510849'"

感谢大家的帮助

【问题讨论】:

    标签: shell sqlite


    【解决方案1】:

    您已经使用单引号来引用参数。逃离他们。

    ... '...\'...'
    

    【讨论】:

    • 感谢您的回复。我明白你的意思了。我不能像那样在单引号内使用单引号。但是您能具体解释一下如何在我的代码中转义它们吗?我真的不知道如何...我已经尝试过这样:sqlite3 my.db 'UPDATE genp SET data= X\’MyHexData\’ WHERE rowid=510849' 但它给了我一个错误:./load.sh: line 13: syntax error: unexpected end of file 我希望你能帮助我并感谢你的耐心:-)
    • 我搞定了。请参阅我的问题中的编辑。感谢您的帮助
    猜你喜欢
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 2017-07-15
    • 2010-11-15
    • 2011-02-03
    • 2019-05-04
    相关资源
    最近更新 更多