也许这个问题很愚蠢,但我无法生成regex表达式来获取表名和主键。你知道吗
CREATE TABLE 'dhcpr_dhcprelayinterface' (
'vrId' integer default 0,
'ifName' string ,
PRIMARY KEY(ifName,vrId),
FOREIGN KEY (vrId) REFERENCES 'vr_vr'(vrId) ON DELETE CASCADE ON UPDATE CASCADE);
我正在使用:
begin = re.compile(r"CREATE TABLE[ \"]*([^ \"]+)[ \"]*[(]([^/;]+)[/;]",re.IGNORECASE)
获取所有表名和数据。你知道吗
但我只需要带有表名和主键的数据。你知道吗
预期输出:
dhcpr_dhcprelayinterface
PRIMARY KEY(ifName,vrId)
此解决方案解决了一些您似乎不担心的问题(但值得担心),例如,SQLite允许您将转义的
'
写入''
,并且CREATE
和TABLE
之间以及PRIMARY
、KEY
和(
之间可能有任意数量的空格,甚至换行:输出:
使用python2.7测试以下各项:
解释可以在here.
我相信你可以用正则表达式或者^{} 来解决这个问题,但是这里有一个“有趣”的方法来解决这个问题仅仅是为了教育目的-在内存数据库中使用^{} -实际创建表并从^{} internal table 中获取} 中获取主键列:
table_name
,从^{印刷品:
相关问题 更多 >
编程相关推荐