5

Web sql (Chrome ローカル データベース) から列リストを取得してみます。決定事項の 1 つ - sqlite_master から情報を取得

SELECT name, sql FROM sqlite_master WHERE type="table" AND name = "'+name+'";

たとえば、私はこの結果を得る

CREATE TABLE table_name ( id INTEGER PRIMARY KEY AUTOINCREMENT, 
number INTEGER unique, description TEXT, password TEXT, url TEXT ) 

ですから、列名を取得するための正規表現を書くのを手伝ってください。または、列名を取得する別の簡単な方法を教えてください。

PS。私はしませんselect * from table...列名を取得するために。これは悪い解決策だと思います..

4

2 に答える 2

4

テーブルの列を取得するには、次を実行しPRAGMA table_info(table_name)ます。

PRAGMA table_info()

指定されたテーブルの列ごとに 1 つの行を返します。返されるデータ セットの列は次のとおりです。

  • cid: 列 ID (左から右に番号が付けられ、0 から始まります)
  • 名前: 列名
  • type: 列宣言タイプ。
  • notnull: ' NOT NULL' が列宣言の一部である場合は true
  • dflt_value: 列のデフォルト値 (存在する場合)。

残念ながら、Chrome はすべてPRAGMAの をブロックするため、これは WebSQL では機能しません。


WebSQL では、アプリによって作成されたテーブルのみにアクセスできるため、テーブルに含まれる列を覚えておく必要があります。


または、テーブルからの読み取りを試みることもできます。

SELECT * FROM table_name LIMIT 1

句を使用LIMITすると、ランダムなレコードのみを読み取るため、これは非常に効率的になります。(そのレコードに非常に大きなブロブがある場合を除きます。)

于 2013-03-05T12:29:35.193 に答える