0

ノード プロジェクトで sqlite3 を実行すると、構文エラーが発生します。問題がある場合は、Cloud9 ワークステーションで実行しています。私のコードはかなり単純だと思います。

var fs = require('fs');
var fileGens = 'generators.db';

var existsGens = fs.existsSync(fileGens);

if(!existsGens) {
  console.log("Creating DB file 'generators'...");
  fs.openSync(fileGens, 'w');
}

var sqlite3 = require('sqlite3').verbose();
var dbGens = new sqlite3.Database(fileGens);

dbGens.serialize(function() {
  if(!existsGens) {
  console.log('Creating db...');
  }
  dbGens.run("CREATE TABLE TerrainFrequencies (Primary TEXT, Secondary TEXT, Tertiary TEXT, WildCards TEXT)");
  dbGens.run("INSERT INTO TerrainFrequencies VALUES (?, ?, ?, ?)", 'Water', 'Hills', 'Forest', 'Mountains,Desert');

  console.log('About to select *');
  dbGens.all("SELECT * FROM TerrainFrequencies", function(err, row) {
    console.log('Selected...');
    console.log(row);
  });
});

dbGens.close();

node index.jsを使用して実行しましたが、エラーが発生しました...

Creating DB file 'generators'...
Creating db...
About to select *
events.js:141
    throw er; // Unhandled 'error' event
    ^

Error: SQLITE_ERROR: near "Primary": syntax error
    at Error (native)

前もって感謝します!

4

1 に答える 1

1

Primary は sqlite の予約済みキーワード / 列名です。一日中キーボードに頭をぶつけていましたが、投稿してから 2 分後に解決しました。ラバーダックになってくれてありがとう、StackOverflow!

于 2016-09-15T03:06:58.850 に答える