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

ncgqoxb0  于 2023-08-06  发布在  SQLite
关注(0)|答案(4)|浏览(414)

在MySQL Workbench中,您可以将COMMENT添加到MySQL数据库中的表和列。
Sqlite是否支持向表和列添加注解?

cdmah0mi

cdmah0mi1#

我不这么认为"SQL As Understood By SQLite"页面没有提到表或列注解,CREATE TABLEALTER TABLE文档也没有提到。
另外,Unsupported 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,就应该能够伪造它。

qzwqbdag

qzwqbdag2#

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

6tdlim6h

6tdlim6h3#

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

如何在SQLite中注解

在SQLite代码中有两种注解方式:

连字符

-- this is my comment
SELECT * FROM employees;

字符串

C型

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

vktxenjb

vktxenjb4#

我很感激这是一个老帖子,但无论如何,你可以在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。

相关问题