


Fehler bei der referenziellen Integrität von Postgres verstehen
Beim Erstellen von Datenbankstrukturen in Postgres (Version 9.1 oder höher) kann dieser Fehler auftreten:
<code>ERROR: there is no unique constraint matching given keys for referenced table "bar"</code>
Dieser Fehler entsteht durch die Durchsetzung der referenziellen Integrität durch Postgres, einem entscheidenden Aspekt der Datenbankkonsistenz. Lassen Sie uns die Ursache und Lösung aufschlüsseln.
Referenzielle Integrität und Fremdschlüssel
Die referenzielle Integrität stellt die Datenkonsistenz über verwandte Tabellen hinweg sicher. Fremdschlüsselbeziehungen stellen Verknüpfungen zwischen Tabellen her. Wenn die Tabelle bar
beispielsweise einen Fremdschlüssel foo_fk
hat, der auf die Spalte name
in der Tabelle foo
verweist, schreibt die referenzielle Integrität vor, dass jeder foo_fk
-Wert in bar
einem vorhandenen name
-Wert in entsprechen muss foo
.
Die Rolle einzigartiger Einschränkungen
Um die referenzielle Integrität aufrechtzuerhalten, erfordert Postgres eine eindeutige Einschränkung für die referenzierte Spalte (name
in der Tabelle foo
). Diese Einschränkung garantiert, dass jeder name
-Wert in foo
eindeutig ist, sodass Postgres die referenzierte Zeile eindeutig identifizieren kann.
Fehlerursache: Fehlende eindeutige Einschränkung
Die Fehlermeldung weist auf eine fehlende eindeutige Einschränkung für die Spalte hin, auf die der Fremdschlüssel verweist. Wenn der name
-Spalte in foo
eine eindeutige Einschränkung fehlt, kann Postgres foo_fk
-Werte in bar
nicht zuverlässig mit bestimmten Zeilen in foo
verknüpfen, was zu dem Fehler führt.
Beheben des Fehlers: Hinzufügen einer eindeutigen Einschränkung
Die Lösung ist einfach: Fügen Sie der referenzierten Spalte eine eindeutige Einschränkung hinzu. In SQL geschieht dies mit den Befehlen ALTER TABLE
und ADD CONSTRAINT
:
ALTER TABLE foo ADD CONSTRAINT foo_name_unique UNIQUE (name);
Dieser Zusatz erzwingt die Eindeutigkeit der name
-Spalte in foo
, erfüllt die Anforderungen von Postgres an referenzielle Integrität und ermöglicht die ordnungsgemäße Funktion der Fremdschlüsselbeziehung. Nach dem Hinzufügen der Einschränkung sollten Versuche zum Erstellen der Fremdschlüsselbeziehung erfolgreich sein.
Das obige ist der detaillierte Inhalt vonWarum gibt Postgres beim Erstellen von Fremdschlüsseln den Fehler „Keine eindeutige Einschränkung für bestimmte Schlüssel' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In dem Artikel werden mithilfe der Änderungstabelle von MySQL Tabellen, einschließlich Hinzufügen/Löschen von Spalten, Umbenennung von Tabellen/Spalten und Ändern der Spaltendatentypen, erläutert.

In Artikel werden die Konfiguration der SSL/TLS -Verschlüsselung für MySQL, einschließlich der Erzeugung und Überprüfung von Zertifikaten, erläutert. Das Hauptproblem ist die Verwendung der Sicherheitsauswirkungen von selbstsignierten Zertifikaten. [Charakterzahl: 159]

In Artikel werden Strategien zum Umgang mit großen Datensätzen in MySQL erörtert, einschließlich Partitionierung, Sharding, Indexierung und Abfrageoptimierung.

In Artikel werden beliebte MySQL -GUI -Tools wie MySQL Workbench und PhpMyAdmin beschrieben, die ihre Funktionen und ihre Eignung für Anfänger und fortgeschrittene Benutzer vergleichen. [159 Charaktere]

In dem Artikel werden in MySQL die Ablagerung von Tabellen mithilfe der Drop -Tabellenerklärung erörtert, wobei Vorsichtsmaßnahmen und Risiken betont werden. Es wird hervorgehoben, dass die Aktion ohne Backups, die Detaillierung von Wiederherstellungsmethoden und potenzielle Produktionsumfeldgefahren irreversibel ist.

In Artikeln werden ausländische Schlüssel zur Darstellung von Beziehungen in Datenbanken erörtert, die sich auf Best Practices, Datenintegrität und gemeinsame Fallstricke konzentrieren.

In dem Artikel werden in verschiedenen Datenbanken wie PostgreSQL, MySQL und MongoDB Indizes für JSON -Spalten in verschiedenen Datenbanken erstellt, um die Abfrageleistung zu verbessern. Es erläutert die Syntax und die Vorteile der Indizierung spezifischer JSON -Pfade und listet unterstützte Datenbanksysteme auf.

Artikel erläutert die Sicherung von MySQL gegen SQL-Injektions- und Brute-Force-Angriffe unter Verwendung vorbereiteter Aussagen, Eingabevalidierung und starken Kennwortrichtlinien (159 Zeichen).


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung