程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Flutter SQLITE 如何限制删除大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Flutter sqlitE 如何限制删除?

开发过程中遇到Flutter sqlitE 如何限制删除的问题如何解决?下面主要结合日常开发的经验,给出你关于Flutter sqlitE 如何限制删除的解决方法建议,希望对你解决Flutter sqlitE 如何限制删除有所启发或帮助;

在我的数据库中,我多次返回相同的值,我想删除最近的值,但是当我想执行 liMIT 时出现错误。

我的数据库助手:

class DatabaseHelper{

  static final _dbname = AppConfig.DATABASE_name;
  static final _dbVersion = AppConfig.DATABASE_VERSION;
  static final tablename = 'counter';

  static final columnID = '_ID';
  static final columnType = 'type';
  static final columnStatus = 'status';

  DatabaseHelper._privateConstructor();
  static final DatabaseHelper instance = DatabaseHelper._privateConstructor();

  static Database _database;
  Future<Database> get database async{
    if(_database != null) return _database;
    _database = await _initiateDatabase();
    return _database;
  }

  _initiateDatabase() async{
    return await openDatabase(join(await getDatabasesPath(),_dbName),version: _dbVersion,onCreate: _oncreate);
  }

  Future _onCreate(Database db,int version) async{
    await db.execute(''' 
      create table $tablename (
        $columnID ID INTEGER PRIMARY KEY,$columnType TEXT NOT NulL,$columnStatus TEXT NOT NulL
      )
      '''
    );
  }

  Future<int> insert(Map<String,dynamic> row) async
  {
    Database db = await instance.database;
    return await db.insert(tablename,row);
  }

  Future<List<Map<String,dynamic>>> queryAll() async
  {
    Database _db = await instance.database;
    return await _db.query(tableName);
  }

  Future<int> delete(int id) async
  {
    Database _db = await instance.database;
    return await _db.delete(tablename,where: '$columnID = ?',whereArgs: [ID]);
  }

  Future<voID> deleteall() async
  {
    Database _db = await instance.database;
    return await _db.delete(tableName);
  }


  // Here is my problem
  Future<int> deletePersonnel(String typE) async
  {
    Database _db = await instance.database;
    return await _db.rawdelete("deletE FROM $tablename WHERE $columnType = $type liMIT 1");
  }
}

在我的 deletePersonnel 函数中,如果我这样写,请求有效:

wait _db.rawdelete("deletE FROM $tablename");

但是如果我这样写,我会出错:

wait _db.rawdelete("deletE FROM $tablename WHERE $columnType = $type liMIT 1");

这是我的数据库中的值的例:

[
{type: Test,status: High},{type: Test,{type: Active,status: Low},status: High}
]

如您所见,我的数据库中出现了多次相同的值,因此我想通过删除最后一个条目来删除与我的类型相对应的值

我遇到的错误:

E/sqliteLog(10576): (1) near "liMIT": Syntax error

但是,如果我删除请求中的 liMIT 1,我也会出错:

no such column: Test

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的Flutter SQLITE 如何限制删除全部内容,希望文章能够帮你解决Flutter SQLITE 如何限制删除所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:Flutter