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

Posted

技术标签:

【中文标题】Sqlite:向表和列添加 COMMENT ON 描述?【英文标题】:Sqlite: adding COMMENT ON descriptions to tables and columns? 【发布时间】:2011-11-17 13:54:13 【问题描述】:

mysql Workbench 中,您可以将 COMMENTs 添加到 MySQL 数据库中的表和列中。

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

【问题讨论】:

【参考方案1】:

我认为不会。 "SQL As Understood By SQLite" 页面未提及表或列 cmets,CREATE TABLE 或 ALTER TABLE 文档也未提及。

另外,Unsupported SQL wiki 页面有这个:

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

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

但是,SQLite 确实保留了您放入 DDL 中的 SQL cmets。如果您将此提供给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,您应该能够伪造它。

【讨论】:

除了使用.schema,您还可以获得与使用SQL 语句相同的结果:SELECT name, sql FROM sqlite_master WHERE type='table' AND name='$table' ORDER BY name;(其中$table 是表的名称)。见:***.com/a/6617764/180733 这很好,但遗憾的是 cmets 没有出现在 SQLiteStudio 的 DDL 视图中。【参考方案2】:

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

如何在 SQLite 中制作 cmets

在SQLite代码中制作cmets有两种方式:

连字符

-- this is my comment
SELECT * FROM employees;

C 风格

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

【讨论】:

谢谢,这很有用。【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

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 在命令中回显。

【讨论】:

以上是关于Sqlite:向表和列添加 COMMENT ON 描述?的主要内容,如果未能解决你的问题,请参考以下文章

oracle查看表和列的描述

如何在 SQLite 中向表中添加变量?

XamarinSQLite教程下载安装SQLite/SQL Server Compact Toolbox

加载预加载到 Core Data 中的 SQLite 数据库

4.SQL--创建成绩表和向表内插入数据

MySQL基础语法之创建表和对表中数据增删改的语法