在MySQL Workbench中,您可以将COMMENT添加到MySQL数据库中的表和列。Sqlite是否支持向表和列添加注解?
COMMENT
cdmah0mi1#
我不这么认为"SQL As Understood By SQLite"页面没有提到表或列注解,CREATE TABLE或ALTER TABLE文档也没有提到。另外,Unsupported SQL wiki页面有以下内容:2009-08-04:表和列注解-我已经搜索了doco,找不到任何关于将注解应用于表或其列的内容。是的,这是2009年的一个wiki页面,但该注解得到了其余文档的支持。但是,SQLite会保留放在DDL中的SQL注解。如果您将以下内容提供给sqlite3 CLI工具:
sqlite3
CREATE TABLE User -- A table comment ( uid INTEGER, -- A field comment flags INTEGER -- Another field comment );
字符串然后,您可以从.schema命令中得到确切的结果:
.schema
sqlite> .schema CREATE TABLE User -- A table comment ( uid INTEGER, -- A field comment flags INTEGER -- Another field comment );
型因此,如果您能够控制用于创建表的DDL,就应该能够伪造它。
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 );
型
6tdlim6h3#
在SQLite代码中有两种注解方式:
连字符
-- this is my comment SELECT * FROM employees;
字符串
C型
/* this is my comment */ SELECT * FROM employees;
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。
4条答案
按热度按时间cdmah0mi1#
我不这么认为"SQL As Understood By SQLite"页面没有提到表或列注解,CREATE TABLE或ALTER TABLE文档也没有提到。
另外,Unsupported SQL wiki页面有以下内容:
2009-08-04:表和列注解-我已经搜索了doco,找不到任何关于将注解应用于表或其列的内容。
是的,这是2009年的一个wiki页面,但该注解得到了其余文档的支持。
但是,SQLite会保留放在DDL中的SQL注解。如果您将以下内容提供给
sqlite3
CLI工具:字符串
然后,您可以从
.schema
命令中得到确切的结果:型
因此,如果您能够控制用于创建表的DDL,就应该能够伪造它。
qzwqbdag2#
当使用sqlite创建表时(我在python中使用
sqlite3
),不支持COMMENT
部分。这会失败(在完整的MySql语法中工作):
字符串
这样就可以了(列声明中没有
COMMENT
):型
6tdlim6h3#
如何在SQLite中注解
在SQLite代码中有两种注解方式:
连字符
字符串
C型
型
vktxenjb4#
我很感激这是一个老帖子,但无论如何,你可以在SQLITE3、Python和Java中创建表时添加注解。可能也适用于其他语言。
您需要向sql字符串添加新行,就像在SQLITE3提示符下键入命令一样-
字符串
当执行时,表是这样创建的:
型
我怀疑这是可行的,因为连接器实际上是通过命令提示符在命令中回显,而不是通过某种API。