Sqlite:向表和列添加 COMMENT ON 描述?
Posted
技术标签:
【中文标题】Sqlite:向表和列添加 COMMENT ON 描述?【英文标题】:Sqlite: adding COMMENT ON descriptions to tables and columns? 【发布时间】:2011-11-17 13:54:13 【问题描述】:在 mysql Workbench 中,您可以将 COMMENT
s 添加到 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 描述?的主要内容,如果未能解决你的问题,请参考以下文章
XamarinSQLite教程下载安装SQLite/SQL Server Compact Toolbox