SQLite 中的转义表名?

mrm*_*mut 5 sql database sqlite escaping

我在 SQLite 中有名为 References 的表,所以我似乎无法定位它。我用来编辑数据库的 SQLite Studio 会引发错误。

有没有办法转义数据库名称?

查询是:

UPDATE References 
SET DateTimeLastEdited = datetime('now', 'localtime')
WHERE NewsItemID = old.NewsItemID;
Run Code Online (Sandbox Code Playgroud)

(这是我正在制作的触发器的一部分。)

bpo*_*iss 9

您可以使用双引号转义表名:

UPDATE "References" SET DateTimeLastEdited = datetime('now', 'localtime') WHERE NewsItemID = old.NewsItemID;
Run Code Online (Sandbox Code Playgroud)

根据您要转义的内容,您需要使用不同的分隔符:

如果要使用关键字作为名称,则需要引用它。SQLite中有四种引用关键字的方式:

'keyword' 单引号中的关键字是字符串文字。

"keyword" 双引号中的关键字是一个标识符。

[关键字] 方括号中的关键字是标识符。这不是标准的 SQL。这种引用机制由 MS Access 和 SQL Server 使用,并包含在 SQLite 中以实现兼容性。

`keyword` 用重音符号(ASCII 代码 96)括起来的关键字是一个标识符。这不是标准的 SQL。这种引用机制由 MySQL 使用,并包含在 SQLite 中以实现兼容性。

来自SQLite 文档