在 MySQL Workbench 中,您可以将
COMMENT
添加到 MySQL 数据库中的表和列。
Sqlite支持给表和列添加注释吗?
我认为不会。 “SQLite 所理解的 SQL” 页面没有提及表或列注释,CREATE TABLE 或 ALTER 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,您应该能够伪造它。
使用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
);
(这不是原发帖者问的,但这就是我第一次根据标题中的关键字发现这个问题时所寻找的。)
在 SQLite 代码中进行注释有两种方法:
连字符
-- this is my comment
SELECT * FROM employees;
C型
/* this is my comment */
SELECT * FROM employees;
我很欣赏这是一篇旧文章,但就其价值而言,您可以在 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 在命令中回显。
在 Oracle 表和列注释在某些架构表中可见
拥有一些标准 sqlite3模式表是个好主意吗?所有工具都可以采用这些表来存储此类元数据。 未来的增强(也许可以通过 PRAGMA 语句)是可能的,但已经提供类似功能的外部工具现在可以开始使用它们。也许名称如