Announcement

Collapse
No announcement yet.

Foreign Keys mit Interbase

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Foreign Keys mit Interbase

    Ich möchte eine Detail-Tabelle per SQL-Befehl erstellen und dabei auf die
    Master-Tabelle mit einem FOREIGN-KEY verweisen. Solange keine Benutzer auf der Datenbank arbeiten, funktioniert dies auch problemlos. Sobald aber Benutzer angemeldet sind (diese müssen nur irgenteine Tabelle im Zugriff haben), bekomme ich beim Anlegen der Tabelle die Meldung "Mastertabelle is in use". Was kann ich unternehmen ??

  • #2
    Hallo die Detailtabelle kannst du bestimmt anlegen, die kann nicht in
    benutzung sein, nur der FOREIGN KEY kann nicht erstellt werden.
    Erstelle den INDEX doch später : z.B.<br>
    ALTER TABLE DETAILTABLE ADD CONSTRAINT FK_DETAIL FOREIGN KEY (MASTER_ID) REFERENCES MASTERTABLE (MASTER_ID) ON DELETE CASCADE

    Comment


    • #3
      Habe ich auch schon robiert, dies führt ebenfalls zum "is in use"-Problem

      Comment


      • #4
        Hi poste mal deinen SQL Befehl zum anlegen der Tabell

        Comment


        • #5
          CREATE DETAILTABLE TEST
          (ID : INTEGER NOT NULL,
          VID : INTEGER,
          .
          .
          FOREIGN KEY(VID)REFERENCES MASTERTABLE(ID) ON UPDATE CASCADE ON DELETE CASCADE

          Comment


          • #6
            Irgendwie hast du das Problem nicht verstanden, du musst den Key später setzen nicht im Create Table Tablename() sondern irgendwann später wenn du Exclusiv am werk bist<br&gt

            Comment


            • #7
              Hab das Problem schon verstanden, daß Problem tritt auch in diesem Fall auf. Exklusiven Zugriff auf die Datenbank kann ich eingentlich nie voraussetzen.
              Mein Kollege hat im Data Definition Guide herausgefunden, daß Interbase dies auch nicht beherrscht. Trotzdem vielen Dank für deine Müh

              Comment


              • #8
                Hallo Sascha,

                einen exklusiven Zugriff auf die DB bekommst Du, wenn Du die Datenbank mit dem IB-Server Manager in den Shut-Down-Modus versetzt. Dann kann genau ein Benuter "SYSDBA" die Datenbank connecten ;-)
                Dann machst Du zunächst am besten einen

                ALTER TABLE tablename DROP CONSTRAINT constraintname;

                ...und dann neu anlegen, wie oben beschrieben.

                Grüße,
                Holge

                Comment

                Working...
                X