Sqlite:向表和列添加注释?

时间:2011-09-15 05:25:05

标签: sqlite comments metadata

在MySQL Workbench中,您可以为MySQL数据库中的表和列添加注释。

Sqlite是否支持向表和列添加注释?

3 个答案:

答案 0 :(得分:35)

我不认为这样。 "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,那么您应该能够伪造它。

答案 1 :(得分: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
);

答案 2 :(得分:0)

我很欣赏这是一篇旧帖子,但就其价值而言,您可以在 SQLITE3、Python 和 Java 中创建表时添加注释。可能也适用于其他语言。

您需要在 sql 字符串中添加新行,就像在 SQLITE3 提示符下键入命令一样 -

sql_str = 'CREATE TABLE properties (\nproperty TEXT NOT NULL, -- A property\nvalue TEXT -- The value of the property\n);'

执行时,表的创建方式如下:

sqlite> .schema

创建表属性(

property TEXT NOT NULL, -- 一个属性

value TEXT -- 属性的值

);

我怀疑这是有效的,因为连接器实际上是通过命令提示符而不是某种 API 在命令中回显。