1
resposta

Unhandled Exception: DatabaseException(UNIQUE constraint failed

E/flutter (26136): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: DatabaseException(UNIQUE constraint failed: Contacts.id (code 1555 SQLITE_CONSTRAINT_PRIMARYKEY)) sql 'INSERT INTO contacts (id, name, account_number) VALUES (?, ?, ?)' args [1, Alex, 1000]

Esse erro está aparecendo para mim. Não consigo resolver, o meu banco de dados não é printado. Como posso resolver ?

1 resposta

Olá, Victor! Tudo bem?

Peço desculpas pela demora em ter dar um retorno.

Esse erro pode estar ocorrendo porque você está tentando inserir na tabela contacts um valor de id que já existe dentro dela, e isso não é possível pois o campo id deve ter sido criado como um campo exclusivo.

Verifique se a sua função save dentro de app_database.dart está assim:

Future<int> save(Contact contact) {
  return createDatabase().then((db) {
    final Map<String, dynamic> contactMap = Map();

    contactMap['name'] = contact.name;
    contactMap['account_number'] = contact.accountNumber;
    return db.insert('contacts', contactMap);
  });
}

e se createDatabase está assim:

Future<Database> createDatabase() {
  return getDatabasesPath().then((dbPath) {
    final String path = join(dbPath, 'bytebank.db');
    return openDatabase(path, onCreate: (db, version) {
      db.execute('CREATE TABLE contacts('
          'id INTEGER PRIMARY KEY, '
          'name TEXT, '
          'account_number INTEGER)');
    }, version: 1);
  });
}

Também fique a vontade para compartilhar seu código, isso pode facilitar na verificação do seu impedimento.

Espero que isso te ajude, bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado. ✓