Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Interbase: Fehler bei Create TTable (https://www.delphipraxis.net/11457-interbase-fehler-bei-create-ttable.html)

r_kerber 7. Nov 2003 06:58


Interbase: Fehler bei Create TTable
 
Hallo Interbase-Fachleute,

warum liefert Interbase 6.5 bei folgendem SQL-Staetment
SQL-Code:
CREATE TABLE Mitarbeiter

   Personalnummer  INTEGER NOT NULL,
   Name     VARCHAR (30) NOT NULL,
   Vorname     VARCHAR (20) NOT NULL,
   Geschlecht     CHAR,
   Strasse     VARCHAR (50) NOT NULL,
   Hausnummer     CHAR (6),
   Plz     INTEGER,
   Abteilungsbezeichnung  VARCHAR (30),
   NameEhepartner  VARCHAR (30),
   VornameEhepartner  VARCHAR (20),
   GeburtsdatumEhepartner  DATE,
   GeschlechtEhepartner  CHAR,
   PersonalnummerVorgesetzter INTEGER,
   Gehalt      DECIMAL(10,2),
   /* Primärschlüssel */ 
   CONSTRAINT pk_Mitarbeiter  PRIMARY KEY (Personalnummer),
   /* Fremdschlüssel */ 
   CONSTRAINT fk_PlzMitarbeiter FOREIGN KEY (Plz)
      REFERENCES Ort (Plz)
        ON DELETE SET NULL
        ON UPDATE CASCADE,
   CONSTRAINT fk_Abteilungsbez FOREIGN KEY (Abteilungsbezeichnung)
      REFERENCES Abteilung (Abteilungsbezeichnung)
        ON DELETE SET NULL
        ON UPDATE CASCADE,
   CONSTRAINT fk_PersonalnrVor FOREIGN KEY (PersonalnummerVorgesetzter)
      REFERENCES Mitarbeiter (Personalnummer)
        ON DELETE SET NULL
        ON UPDATE CASCADE,
   /*Domain-Integritätsbedingungen */ 
   CONSTRAINT di_Geschlecht CHECK (( GeschlechtEhepartner IN ('M', 'W') OR GeschlechtEhepartner IS NULL) AND Geschlecht IN ('M', 'W') )
)
den Fehler:
Zitat:

STORE RDB$RELATION_CONSTRAINTS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_12"
Das Statement ist nicht von mir "erfunden". Ich habe es aus dem Buch "Datenbankkonzepte in der Praxis" von Sönke Cordts. Es ist ein Teil einer langen Liste von Create-Statements.

MrSpock 7. Nov 2003 07:15

Re: Interbase: Fehler bei Create TTable
 
Hallo r_kerber,

die Namen der Contraints müssen in der gesamten Datenbank eindeutig sein, d.h. zwei Tabellen dürfen nicht denselben Namen für einen Constraint benutzen. Ist das in deinem Fall sicher gestellt?

r_kerber 7. Nov 2003 07:35

Re: Interbase: Fehler bei Create TTable
 
Faszinierend.

Das wars. Einfach einen namen geändert und jetzt läuft es. Da ist den Buchautoren wohl ein Fehler unterlaufen. :(

MrSpock 7. Nov 2003 07:46

Re: Interbase: Fehler bei Create TTable
 
Hallo r_kerber,

so is dat halt mit die Bücha :mrgreen: .

Aber was mich schockiert :shock: , gibt es auch Einträge, die der Bedingung:

SQL-Code:
GeschlechtEhepartner IS NULL
genügen, und wenn ja, wie genau ist diese Aussage zu interpretieren :lol: ?

Ooops, ich glaube das wird dann off-topic.

r_kerber 7. Nov 2003 07:59

Re: Interbase: Fehler bei Create TTable
 
Hallo Spockie,

das Skript war aber extra für Interbase!

Zu Deiner OffTopic-Frage :lol: : Ich vermute, das Geschlecht des Ehepartners ist dann NULL, wenn es keinen Ehepartner gibt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 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