SqfliteDatabaseException (DatabaseException(near ")": 语法错误

SqfliteDatabaseException (DatabaseException(near ")": syntax error

我用 sqflite 创建了一个数据 table。但它告诉我语法错误。你能告诉我这里的语法错误在哪里吗?

Future _onCreate(Database db, int version) async {
    await db.execute('''
          CREATE TABLE $table (
            $columnId INTEGER PRIMARY KEY,
            $columnfid VARCHAR,
            $columnfname TEXT,
          )
          ''');
  }

这里是错误:

Exception has occurred.
SqfliteDatabaseException (DatabaseException(near ")": syntax error (code 1 SQLITE_ERROR): , while compiling: CREATE TABLE fid_table (
            id INTEGER PRIMARY KEY,
            fid VARCHAR,
            fname TEXT,
          )) sql '          CREATE TABLE fid_table (
            id INTEGER PRIMARY KEY,
            fid VARCHAR,
            fname TEXT,
          )
          ' args []})

问题在于 SQL 的尾随逗号 (,),即在最后一个 TEXT.

之后

而不是

await db.execute('''
      CREATE TABLE $table (
        $columnId INTEGER PRIMARY KEY,
        $columnfid VARCHAR,
        $columnfname TEXT,
      )
      ''');

尝试

wait db.execute('''
      CREATE TABLE $table (
        $columnId INTEGER PRIMARY KEY,
        $columnfid VARCHAR,
        $columnfname TEXT
      )
      ''');

此外,也不需要额外的引号。所以,你也可以这么写。

wait db.execute('
      CREATE TABLE $table (
        $columnId INTEGER PRIMARY KEY,
        $columnfid VARCHAR,
        $columnfname TEXT
      )
      ');