Web SQL从表中获取列列表

Mik*_*eLP 5 javascript regex sqlite google-chrome web-sql

我尝试从Web sql(Chrome本地数据库)获取列列表.Оne的决定 - 从sqlite_master获取信息

SELECT name, sql FROM sqlite_master WHERE type="table" AND name = "'+name+'";
Run Code Online (Sandbox Code Playgroud)

例如,我得到了这个结果

CREATE TABLE table_name ( id INTEGER PRIMARY KEY AUTOINCREMENT, 
number INTEGER unique, description TEXT, password TEXT, url TEXT ) 
Run Code Online (Sandbox Code Playgroud)

所以帮我写regex获取列名,或者,或许,给我看另一个简单的方法获取列名.

PS.我不想做select * from table...获取列名称.我认为这是不好的解决方案..

CL.*_*CL. 4

要获取表的列,请执行PRAGMA table_info(table_name)

PRAGMA table_info()

为指定表的每一列返回一行。返回的数据集的列是:

  • cid:列id(从左到右编号,从0开始)
  • 名称:列名称
  • type:列声明类型。
  • notnull:如果“ NOT NULL”是列声明的一部分,则为 True
  • dflt_value:列的默认值(如果有)。

不幸的是,Chrome 会阻止所有PRAGMAs,因此这在 WebSQL 中不起作用。


在 WebSQL 中,您只能访问由应用程序创建的表,因此您应该只记住表有哪些列。


或者,您可以尝试从表中读取:

SELECT * FROM table_name LIMIT 1
Run Code Online (Sandbox Code Playgroud)

使用该LIMIT子句,这将非常有效,因为您只读取一些随机记录。(除非该记录中有一些非常大的斑点。)

  • PRAGMA table_info(my_table) 无法准备语句(23 未授权) (5认同)
  • 关于 SELECT * FROM table_name LIMIT 1; 当表为空时问题就开始了。 (5认同)