Sqlite:向表和列添加 COMMENT ON 描述?

问题描述 投票:0回答:5

在 MySQL Workbench 中,您可以将

COMMENT
添加到 MySQL 数据库中的表和列。

Sqlite支持给表和列添加注释吗?

sqlite comments metadata
5个回答
66
投票

我认为不会。 “SQLite 所理解的 SQL” 页面没有提及表或列注释,CREATE TABLEALTER TABLE 文档也没有提及。

此外,不支持的 SQL wiki 页面有以下内容:

2009-08-04:表和列注释 - 我已经搜索了 doco,但找不到任何有关将注释应用于表或其列的信息。

是的,这是 2009 年的 wiki 页面,但该注释得到了其余文档的支持。

但是,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,您应该能够伪造它。


2
投票

使用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
);

1
投票

(这不是原发帖者问的,但这就是我第一次根据标题中的关键字发现这个问题时所寻找的。)

如何在SQLite中发表评论

在 SQLite 代码中进行注释有两种方法:

连字符

-- this is my comment
SELECT * FROM employees;

C型

/* this is my comment */ 
SELECT * FROM employees;

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

CREATE TABLE properties (
property TEXT NOT NULL, -- A property
value TEXT -- The value of the property
);

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


0
投票

在 Oracle 表和列注释在某些架构表中可见

拥有一些标准 sqlite3模式表是个好主意吗?所有工具都可以采用这些表来存储此类元数据。 未来的增强(也许可以通过 PRAGMA 语句)是可能的,但已经提供类似功能的外部工具现在可以开始使用它们。也许名称如

  • sqlite3_table_comments
  • sqlite3_column_comments
© www.soinside.com 2019 - 2024. All rights reserved.