如何从sqlite create string中提取列参数?

时间:2011-07-16 12:48:44

标签: regex sqlite

在sqlite中,可以使用创建表的字符串:

select sql from sqlite_master where type='table' and tbl_name='MyTable'

这可以给出:

CREATE TABLE "MyTable" (`id` PRIMARY KEY NOT NULL, [col1] NOT NULL,
 "another_col" UNIQUE, '`and`,''another'',"one"' INTEGER, and_so_on);

现在我需要使用此字符串提取任何已使用。

设置列名的其他参数

但是这很难,因为列名可以用特殊字符括起来,或者说普通,列名可能有一些特殊字符用作封装等。

我不知道如何接近它。结果应该是一个列名,函数应该返回此名称之后和,之前的任何内容,因此给它id它应该返回PRIMARY KEY NOT NULL

1 个答案:

答案 0 :(得分:1)

使用pragma table_info:

http://www.sqlite.org/pragma.html#pragma_table_info

sqlite> pragma table_info(MyTable);
cid|name|type|notnull|dflt_value|pk
0|id||1||1
1|col1||1||0
2|another_col||0||0
3|`and`,'another',"one"|INTEGER|0||0
4|and_so_on||0||0