Overslaan naar inhoud

Hoe Odoo Dubbele Sleutelwaarde Te Herstellen Die Unieke Beperkingen Overtreedt

Leer hoe je de foutmelding 'duplicate key value violates unique constraint' in Odoo kunt oplossen met duidelijke uitleg, veelvoorkomende oorzaken en stapsgewijze oplossingen voor Odoo-gebruikers en -ontwikkelaars.
4 maart 2026 in
Elisa Van Outrive
| Nog geen reacties

Inleiding


De Odoo “Dubbele sleutelwaarde schendt unieke beperking” fout treedt op wanneer het systeem probeert een record in te voegen of bij te werken dat een database-uniciteitsregel schendt.

Dit is een database-niveau beperking fout die door PostgreSQL wordt gegenereerd en meestal verschijnt in:

  • Serverlogs
  • Importfouten
  • API-responses
  • Module-upgrades
  • Gegevensmigratiescripts

De fout ziet er meestal als volgt uit:

psycopg2.errors.UniqueViolation:
dubbele sleutelwaarde schendt unieke beperking "res_partner_email_uniq"
DETAIL: Sleutel (email)=(john@example.com) bestaat al.

Deze gids legt uit waarom deze fout optreedt en hoe je deze correct kunt oplossen zonder de integriteit van de gegevens in gevaar te brengen.



Wat is een unieke beperking in Odoo?


Een unieke beperking zorgt ervoor dat bepaalde velden geen dubbele waarden kunnen bevatten.

In Odoo kan uniciteit worden afgedwongen via:

  • SQL-beperkingen
  • _sql_constraints in modeldefinities
  • Database-niveau unieke indexen

Voorbeeld:

_sql_constraints = [
    ('email_unique', 'unique(email)', 'E-mail moet uniek zijn.')
]

Dit betekent dat geen twee records hetzelfde e-mailadres kunnen delen.

Als een duplicaat wordt ingevoegd, weigert PostgreSQL de bewerking.

Veelvoorkomende oorzaken van fouten met dubbele sleutelbeperkingen



1. Een Record Aanmaken Dat Al Bestaat

Als je probeert te creëren:

  • Een partner met een bestaand e-mailadres
  • Een product met een bestaande interne referentie
  • Een gebruiker met een bestaande login

Odoo blokkeert het.

2. API of Integratie die Duplicaatrecords Aanmaakt

Externe systemen kunnen proberen:

  • Bestaande klanten opnieuw aan te maken
  • Dezelfde bestelling opnieuw te verzenden
  • Dubbele productvermeldingen

Zonder te controleren of het record al bestaat.

Dit is een veelvoorkomend integratieprobleem.

3. Importeren van Dubbele Rijen

CSV-imports met dubbele waarden in unieke velden zullen falen.

Voorbeeld:

Twee rijen met hetzelfde e-mailadres of externe referentie.

4. Migratie van een Nieuwe Unieke Beperking Toevoegen

Als een module-upgrade een nieuwe unieke beperking introduceert en bestaande gegevens dubbele waarden bevatten, mislukt de migratie.

5. Onjuiste Behandeling van Externe ID's

Als integraties externe ID's negeren en alleen op ruwe invoer vertrouwen, kunnen er duplicaten optreden.

Juiste mappingstrategieën voorkomen dit probleem.

6. Handmatige Database Manipulatie

Direct SQL-inserties kunnen ORM-validatie omzeilen, maar kunnen nog steeds unieke beperkingen op het niveau van de database activeren.



Hoe de fout met dubbele sleutelbeperkingen in Odoo op te lossen



Stap 1 – Identificeer de Beperkingsnaam

Het foutbericht specificeert de beperking:

dubbele sleutelwaarde schendt unieke beperking "res_partner_email_uniq"

Dit vertelt je welk veld gedupliceerd is.

Stap 2 – Zoek het Gedupliceerde Record

Zoek in het model naar de gedupliceerde waarde.

Voorbeeld:

Zoek naar het bestaande e-mailadres in res.partner.

Beslis of je:

  • Het bestaande record wilt bijwerken
  • Duplicaten wilt samenvoegen
  • Onjuiste invoer wilt verwijderen

Stap 3 – Pas de integratielogica aan

Als veroorzaakt door API-integratie:

  • Implementeer logica voor “zoeken voordat je aanmaakt”
  • Gebruik zoeken om bestaande records te vinden
  • Werk bij in plaats van duplicaten aan te maken

Dit voorkomt herhaalde fouten.

Stap 4 – Maak dubbele gegevens schoon vóór migratie

Als de migratie faalt door duplicaten:

  • Identificeer dubbele records
  • Samenvoegen of overbodige vermeldingen verwijderen
  • Voer de migratie opnieuw uit

Verwijder nooit de beperking zonder de gegevens schoon te maken.

Stap 5 – Gebruik externe ID's voor gegevenssynchronisatie

In plaats van te vertrouwen op interne database-ID's:

  • Gebruik externe ID's
  • Onderhoud consistente mapping
  • Vermijd blinde invoegen

Gestructureerde synchronisatiestrategieën verminderen aanzienlijk het aantal fouten met dubbele sleutels.

Stap 6 – Vermijd directe SQL-invoegen

Gebruik altijd Odoo ORM voor het aanmaken van records.

ORM behandelt validatie veiliger dan handmatige SQL-bewerkingen.



Hoe dubbele sleutel fouten te voorkomen



  • Valideer gegevens vóór invoegen
  • Implementeer het patroon “zoeken-vóór-aanmaken”
  • Gebruik externe ID's consistent
  • Schoon regelmatig legacy data
  • Monitor integratielogs
  • Vermijd het omzeilen van ORM

Unieke beperkingen bestaan om de gegevensintegriteit te beschermen. Het doel is om duplicaten op de juiste manier op te lossen in plaats van beperkingen uit te schakelen.



Hoe Dasolo gegevensduplicatie op grote schaal voorkomt


Fouten met dubbele sleutelbeperkingen duiden doorgaans op ontbrekende waarborgen in de workflows voor gegevenscreatie. Of ze nu worden veroorzaakt door handmatige invoer, imports of API-integraties, deze problemen onthullen vaak de afwezigheid van idempotente logica of onvoldoende validatie vóór de creatie van records.


Bij Dasolo minimaliseren we duplicatierisico's door ons te concentreren op:

  • Duidelijke strategieën voor unieke velden
  • Zoek-voor-creëren logica in integraties
  • Gecontroleerd extern ID-beheer
  • Gestructureerde importvalidatie
  • Continue monitoring van synchronisatiestromen

Een gedisciplineerde aanpak van gegevensbeheer voorkomt ongecontroleerde duplicatie en behoudt de consistentie van de database.



Conclusie


De Odoo "Dubbele sleutelwaarde schendt unieke beperking" fout treedt op wanneer een bewerking probeert een record te creëren of bij te werken met een waarde die uniek moet blijven. Hoewel de database de actie blokkeert om de integriteit te beschermen, is de onderliggende oorzaak vaak verbonden met zwakke validatie of synchronisatielogica.


Door zoek-voor-creëren patronen te implementeren, legacy duplicaten op te schonen en consistente uniciteitsstrategieën af te dwingen, kunnen ontwikkelaars terugkerende schendingen van beperkingen voorkomen. Het beschermen van unieke gegevensvelden is essentieel voor het onderhouden van betrouwbare en schaalbare Odoo-omgevingen.




Elisa Van Outrive 4 maart 2026
Deel deze post
Aanmelden om een reactie achter te laten