Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zwei Fremdschlüssen in einer Tabelle? (https://www.delphipraxis.net/171734-zwei-fremdschluessen-einer-tabelle.html)

AlexII 22. Nov 2012 11:11

Datenbank: SQLite • Version: 3 • Zugriff über: SQLite4Delphi Wrapper von Tim Anderson

Zwei Fremdschlüssen in einer Tabelle?
 
Zwei Fremdschlüssen in einer Tabelle? Ist das erlaubt? Normal schon, aber meine SQLite DB lässt das irgendwie nicht zu... hatte mal jemand auch so ein Problem?

Danke!

Bernhard Geyer 22. Nov 2012 11:16

AW: Zwei Fremdschlüssen in einer Tabelle?
 
Bei SQL-Statements ist oft die Glaskugel in wartungsmodus

Wie schaut dein SQL-DDL-Code aus mit dem du die Tabelle erstellst?
Welche Fehlermeldung bekommst du?

AlexII 22. Nov 2012 11:22

AW: Zwei Fremdschlüssen in einer Tabelle?
 
Liste der Anhänge anzeigen (Anzahl: 1)
So sieht der Code aus:

Delphi-Quellcode:
// Tabelle autor anlegen
sSQL4 := 'CREATE TABLE autor ([idautor] INTEGER PRIMARY KEY NOT NULL,';
sSQL4 := sSQL4 + '[titel] VARCHAR (255),';
sSQL4 := sSQL4 + '[fk_nachname_id] INTEGER, FOREIGN KEY(fk_nachname_id) REFERENCES nachname(idnachname),';
sSQL4 := sSQL4 + '[fk_vorname_id] INTEGER, FOREIGN KEY(fk_vorname_id) REFERENCES vorname(idvorname));';
Die Fehlermeldung siehe Anlage ))

Mit einem FOREIGN KEY läuft aber alles ok.

Blup 22. Nov 2012 11:59

AW: Zwei Fremdschlüssen in einer Tabelle?
 
Fremdschlüssel ohne Felder in der Tabelle (bzw. Schlüsselname = Feldname), ist das in diesem SQL-Dialekt möglich?

Ich würde das so aufbauen:
Code:
CREATE TABLE autor (
  [idautor] INTEGER PRIMARY KEY NOT NULL,
  [titel] VARCHAR (255),
  [nachname_id] INTEGER,
  [vorname_id] INTEGER);

ALTER TABLE autor ADD CONSTRAINT fk_nachname_id FOREIGN KEY (nachname_id) REFERENCES nachname(idnachname) ON UPDATE CASCADE;
ALTER TABLE autor ADD CONSTRAINT fk_vorname_id FOREIGN KEY (vorname_id) REFERENCES vorname(idvorname) ON UPDATE CASCADE;

AlexII 22. Nov 2012 12:09

AW: Zwei Fremdschlüssen in einer Tabelle?
 
Wow... es klappt, danke dir! :thumb:

Jumpy 22. Nov 2012 15:19

AW: Zwei Fremdschlüssen in einer Tabelle?
 
Kenn den SQLLite ja auch nicht, aber vllt. hätte man wie beim Primary Key keine Kommas machen dürfen? Oder statt wie in Blubs Lösung ALter Tables hinterherzuschieben, kann man die Foreign_Key definitionen (jetzt mit Komma getrennt) auch nachdem alle Felder definiert wurden ans Create-Statemant dranhängen. Wär zumindest in Oracle so.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz