如何解决Flutter DatabaseException检查约束失败
我正在尝试向 sqflite 表中插入一些数据,但在执行插入查询时出错 这是我创建数据库的代码
Future _onCreate(Database db,int version) async {
await db.execute('''
CREATE TABLE $clientTable (
$colId INTEGER PRIMARY KEY AUTOINCREMENT,$coldisplay TEXT NOT NULL UNIQUE,$colFistName TEXT NOT NULL,$colLastName TEXT,$colGstNo TEXT UNIQUE CHECK (length($colGstNo) = 15),$colWebsite TEXT UNIQUE,$colPhone INTEGER UNIQUE
CHECK (length($colPhone) <= 15 AND length($colPhone) >= 7),$colEmail TEXT UNIQUE,$colCurrency INTEGER DEFAULT 1,$colPaymentTerm INTEGER DEFAULT 1,$colEmailReminder BOOLEAN DEFAULT 0,$colCreatedAt TEXT,$colTotal DECIMAL (10,2) DEFAULT 0.0
)
''');
}
这是我得到的错误
[ERROR:Flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: DatabaseException(CHECK constraint Failed: clientsTable (code 275)) sql 'INSERT INTO clientsTable (displayName,firstName,lastName,gstNo,website,phone,email,currency,paymentTerm,emailReminder,createdAt,total) VALUES (?,?,?)' args [john,john,2345367456,rupee,NET 0,false,Jan 21,2021,10.21]}
数据插入代码
Future<int> insert(Client client) async {
Database db = await database;
int id = await db.insert(clientTable,client.toMap());
return id;
}
映射函数
Map<String,dynamic> toMap() {
var map = Map<String,dynamic>();
if (id != null) {
map['id'] = _id;
}
map['displayName'] = _displayName;
map['firstName'] = _firstName;
map['lastName'] = _lastName;
map['gstNo'] = _gstNo;
map['website'] = _website;
map['phone'] = _phone;
map['email'] = _email;
map['currency'] = _currency;
map['paymentTerm'] = _paymentTerm;
map['emailReminder'] = _emailReminder;
map['createdAt'] = _createdAt;
map['total'] = _total;
return map;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。