2016-01-19 15 views
1

我在SQLite中有名为References的表,所以我看不到它。我用来编辑数据库的SQLite工作室会引发错误。在SQLite中转义表名?

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

查询是:

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

(这是我提出的触发器的一部分。)

回答

1

可以逃脱双引号表名:

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