2011-09-15 84 views

回答

29

我不这么认为。 "SQL As Understood By SQLite"页面没有提及表格或列注释,也没有提到CREATE TABLEALTER TABLE文档。

此外,Unsupported SQL的维基页面有这样的:

2009-08-04:表和列注释 - 我已经走遍了DOCO并不能找到关于申请意见表或他们的任何列。

是的,这是一个从2009年开始的维基页面,但是该说明得到了其他文档的支持。

但是,SQLite确实保留了您放入DDL的SQL注释。如果你给这对sqlite3 CLI工具:

CREATE TABLE User 
     -- A table comment 
(
     uid INTEGER, -- A field comment 
     flags INTEGER -- Another field comment 
); 

然后你得到完全从.schema命令回:

sqlite> .schema 
CREATE TABLE User 
     -- A table comment 
(
     uid INTEGER, -- A field comment 
     flags INTEGER -- Another field comment 
); 

所以,你应该能够伪造它,如果你能控制所使用的DDL创建你的表格。

+4

与使用'.schema'一样,您可以使用以下语句获得与SQL语句相同的结果: 'SELECT name,sql FROM sqlite_master WHERE type ='table'AND name ='{$ table}'ORDER BY名称;' (其中$ table是表的名称)。请参阅:http://stackoverflow.com/a/6617764/180733 – fooquency

0

当使用sqlite创建表(我在python中使用sqlite3)时,不支持COMMENT部分。

这失败(完全的MySQL语法适用):

CREATE TABLE `Info` (
    `Test` VARCHAR(512) NOT NULL COMMENT 'Column info here' 
); 

这工作(在列声明没有COMMENT):

CREATE TABLE `Info` (
    `Test` VARCHAR(512) NOT NULL 
); 
0

有两种方式提出意见SQLite中:

连字符

-- this is my comment 
SELECT * FROM employees; 

C风格

(我不知道如果这是原来的海报在说什么,但是这是我一直在寻找,当我第一次发现这个问题。)