2017-01-02 4 views
0

Ich habe drei Tabellen und aus der ersten Tabelle möchte ich Datenspalte transId in den zweiten Tabellenspalte Ich möchte Spalte Spalte transId in die zweite Tabelle refId mit zum Senden von Daten refId, und das gleiche von dritten Tabelle senden Beziehung der ersten und dritten Tabelle. Wie ist das möglich?Implementierung Fremdschlüssel aus zwei verschiedenen Tabellen

+2

Was meinst du mit "senden"? Meinst du, wenn ein Datensatz in Tabelle1 eingefügt wird, wird transid sofort in eine andere Tabelle eingefügt? Sie müssen 'send' definieren –

+0

Sie können mehrere Fremdschlüssel auf derselben Spalte –

+0

erstellen, aber jeder von diesen würde erfordern, dass der Wert existiert. –

Antwort

0

Wir können mehrere Fremdschlüssel in derselben Spalte erstellen, aber jeder von diesen würde erfordern, dass der Wert existiert.

Eg: 
Table1(1,2,3) 
Table2(3,4) 

Sie können 3 auf die table3 Spalte den Wert einfügen, die den Fremdschlüssel Bezug auf sowohl table1 und table2 (Wert 3 sowohl in table1 und table2 vorhanden), aber Sie können keine anderen Werte einfügen.

Es gibt eine weitere Methode, um dies zu lösen, können Sie ein User Defined Function in einer Check constraint von table3 Spalt verwenden, der Wert vorhanden ist oder nicht in den table1 und table2

0

Sie brauchen nicht zu prüfen, Daten aus der Tabelle senden zu anderen. Sie müssen nur von foreign_key_column (refId) auf Primary_key_column (transId) verweisen.
Als Beispiel:
Verwenden von SQL Server

// foreign key in second table 
CREATE TABLE Table2 
(
refId int FOREIGN KEY REFERENCES Table1(transId) 
) 
// foreign key in third table 
CREATE TABLE Table3 
(
refId int FOREIGN KEY REFERENCES Table1(transId) 
) 

helped Tutorial

0

Scheint Table2 die Master-Tabelle enthält Spalte transId ist der Verweis auf zwei Tabellen Tabelle 1 und Tabelle 2.You mit der gehen muß Erstellen des Fremdschlüssels in Tabelle 2 und Tabelle 3 für Spalte transId.Sie können die folgende Syntax zum Erstellen der Beziehung zwischen Tabellen verwenden:

--foreign key in First table 
CREATE TABLE Table1 
(
refId int FOREIGN KEY REFERENCES Table2(transId) 
) 
-- foreign key in third table 
CREATE TABLE Table3 
(
refId int FOREIGN KEY REFERENCES Table2(transId) 
) 
Verwandte Themen