2016-06-22 14 views
-1

Ich bin neu in SQL-Syntax zu lernen und stieß auf dieses Beispiel in einem Buch. Ich verstehe die Notwendigkeit für Fremdschlüssel und die Verwendung der Einschränkungsfunktion, um den Schlüssel zu einer anderen Tabelle festzulegen, die erstellt wird (EMPLOYEE_TBL in diesem Beispiel).Foreign Key Constraint Syntax

Meine Frage ist, warum es die Zeile CONSTRAINT EMP_ID_FK FOREIGN KEY (EMP_ID) aufgeführt. Was genau ist der EMP_ID_FK Teil? Da Sie nur die CONSTRAINT-Funktion verwenden müssen, um ein Feld für Ihre untergeordnete Tabelle auf die übergeordnete Tabelle zu setzen, können Sie es nicht einfach als CONSTRAINT FOREIGN KEY (EMP_ID) REFERENCES EMPLOYEE_TBL (EMP_ID)); schreiben?

Verstehe ich das falsch? Jede Hilfe wäre willkommen. Vielen Dank!

CREATE TABLE EMPLOYEE_PAY_TBL 
(EMP_ID CHAR(9) NOT NULL, 
DATE_HIRE DATE NULL, 
DATE_LAST_RAISE DATE NULL, 
CONSTRAINT EMP_ID_FK FOREIGN KEY (EMP_ID) REFERENCES EMPLOYEE_TBL (EMP_ID)); 
+0

Verwenden Sie MySQL oder MS SQL Server? (Zwei verschiedene Produkte, mit einigen SQL-Unterschieden.) – jarlh

+3

Es ist der Name des 'CONSTRAINT'-Objekts. Sie müssen etwas benennen. – Siyual

+0

@jarlh Das Beispiel in diesem Buch verwendet MySQL. – arooney88

Antwort

1

Die Klausel CONSTRAINT EMP_ID_FK gibt der Einschränkung einfach einen Namen. Dies wird später erforderlich, wenn Sie die Einschränkung deaktivieren oder löschen möchten. Sie haben Recht, dass der Name (EMP_ID_FK) optional ist; Wenn Sie es weglassen, können Sie auch das Schlüsselwort CONSTRAINT weglassen, da die Klausel FOREIGN KEY ausreicht, um dem Interpreter zu sagen, was Sie wollen.

Die Benennung Ihrer Einschränkungen ist völlig optional, wird aber als gute Praxis für Dokumentationszwecke angesehen und falls Sie, wie gesagt, später etwas mit der Einschränkung machen müssen. Wenn Sie den Namen weglassen, benennt die Datenbank automatisch die Einschränkung für Sie, aber viel Glück herauszufinden, was der Name ist.

+0

Danke für die Erklärung. – arooney88

0

Sagen Sie es so.

Tabelle 1 muss einen Verweis auf Tabelle 2 haben. Tabelle 2 hat eine Primärschlüssel-ID, die ein eindeutiger Wert ist. Dies bedeutet, dass auf sie mit dieser ID zugegriffen werden kann, da sie in allen Zeilen dieser Tabelle eindeutig ist. Tabelle 1 muss nun auf diese ID verweisen. Sie müssen diese ID in Tabelle 1 speichern, damit Sie sich darauf beziehen können, und Sie wissen, auf welche Tabelle 2, Tabelle 1, hinweist. Sie verwenden die Namenskonvention Table2_ID_FK, um zu wissen, dass dieses Feld in Tabelle 1 eine Referenz auf die ID von Tabelle 2 ist. Die Einschränkung besteht darin, die tatsächliche Beziehung zwischen diesen Tabellen festzulegen.

Verwandte Themen