【问题标题】:Sqlite3/Node syntax error on Cloud9Cloud9 上的 Sqlite3/Node 语法错误
【发布时间】:2016-09-15 01:46:42
【问题描述】:

我在节点项目中运行 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)

提前致谢!

【问题讨论】:

    标签: node.js sqlite cloud9


    【解决方案1】:

    Primary 是 sqlite 中的保留关键字/列名。整天用键盘敲打我的头,在我发布后两分钟就解决了。感谢您成为橡皮鸭,StackOverflow!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多