在SQLite中转义表名?

时间:2016-01-19 18:30:22

标签: sql database sqlite escaping

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

有没有办法逃避数据库名称?

查询是:

FLAG_ACTIVITY_NO_HISTORY

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

1 个答案:

答案 0 :(得分:2)

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

UPDATE "References" SET DateTimeLastEdited = datetime('now', 'localtime') WHERE NewsItemID = old.NewsItemID;

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

  

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

     

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

     

“keyword”双引号中的关键字是标识符。

     

[keyword] A   括在方括号中的关键字是一个标识符。这不是   标准SQL。 MS Access和SQL使用此引用机制   服务器并包含在SQLite中以实现兼容性。

     

`关键字`A   用严重重音符号(ASCII代码96)括起来的关键字是一个标识符。   这不是标准的SQL。这种引用机制由MySQL和   SQLite中包含了兼容性。

来自SQLite documentation