Autor Beitrag
OlliWausD
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 212

Win 2000/XP
Delphi 5 Professional - Interbase/Firebird
BeitragVerfasst: Di 01.02.05 11:28 
hi Jungs,

ich habe eine Tabelle, in der schon ein Primary Key (ean) vorhanden ist.
Das Programm-Modul soll jetzt erweitert werden, so dass zu diesem Primary Key mehrere DS angelegt werden können.
Hierzu benötige ich einen 2. Primary Key (Nr)

DS1 wäre dann EAN-Text1 0
DS2 wäre dann EAN-Text1 1
...

Also:
ausblenden Quelltext
1:
2:
ALTER TABLE ABCTabelle ADD nr INTEGER NOT NULL
UPDATE TABLE ABCTabelle Set Nr = 0

--> Funktioniert einwandfrei, jedoch
ausblenden Quelltext
1:
ALTER TABLE ABCTabelle ADD PRIMARY KEY (ean,Nr)					

--> Das funktioniert leider nicht !!! Im IB-Expert bekomme ich die Fehlermeldung:
Zitat:
This operation is not defined for system tables.
unsuccessful metadata update.
STORE RDB$RELATION_CONSTRAINTS failed.
action cancelled by trigger (3) to preserve data integrity.
Attempt to define a second PRIMARY KEY for the same table.


es gibt vom DB-System angelegte Trigger beide beinhalten
Zitat:
Check ABCTabelle.FeldA

jodoch sind diejenigen Trigger5 und Trigger17 !

Wie finde ich Trigger 3 ???

mfg

OlliW

_________________
Take it easy
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 01.02.05 11:35 
Hallo!

Dein Problem ist eigentlich recht einfach:
ausblenden Quelltext
1:
Attempt to define a second PRIMARY KEY for the same table.					


Übersetzt: Versuch, einen zweiten Primärschlüssel für dieselbe Tabelle anzulegen. Soetwas geht einfach nicht, es kann immer nur einen Primärschlüssel geben, alles andere wäre unsinnig.

Du musst zuerst den alten Primärschlüssel entfernen, und dann den neuen, der über zwei Felder gehen soll, definieren.

Cu,
Udontknow
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 01.02.05 11:40 
Ergänzend zu Udontknow:
Statt eines zweiten Primary Key (was von der Bezeichnung schon keinen Sinn macht), wird dir vermutlich ein Unique Key ausreichen.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 01.02.05 12:01 
Also, ich habe ihn so verstanden, daß er einen mehrteiligen Primärschlüssel haben will:
Zitat:
Das Programm-Modul soll jetzt erweitert werden, so dass zu diesem Primary Key mehrere DS angelegt werden können.
Bei einem weiteren Unique Index wäre das ja so nicht möglich...

Cu,
Udontknow
OlliWausD Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 212

Win 2000/XP
Delphi 5 Professional - Interbase/Firebird
BeitragVerfasst: Di 01.02.05 12:06 
Der Primärschlüssel sollen quasi beide Felder sein. Wie bei einer n:m-Tabelle

Das mit dem Löschen und neu erstellen hab ich mir auch schon überlegt. Will das aber nicht unbedingt!

Aber noch mal zurück zu dem Trigger.
Wieso bringt er dann die Fehlermeldung mit dem Trigger??

mfg

OlliW

EDIT: Zefix, wie lösch ich denn wieder nen Primary Key???
ALTER TABLE ABCTabelle DROP PRIMARY KEY funktioniert nicht. Beim Primary sagt er Syntaxfehler !

Ich glaub, ich bin heut noch nicht ganz wach

mfg die 2.

Olliw

_________________
Take it easy
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 01.02.05 12:48 
Weiss jetzt gerade nicht die genaue Syntax, aber mach es doch einfach über den IB-Expert.

PS: Hiess es nicht alter table *tabelle* drop constraint *Name des Primärschlüssels*?

Cu,
Udontknow
OlliWausD Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 212

Win 2000/XP
Delphi 5 Professional - Interbase/Firebird
BeitragVerfasst: Di 01.02.05 13:03 
ahh ja genau, das constraint vergessen :roll:

funkioniert

Thx

mfg

OlliW

_________________
Take it easy
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 01.02.05 13:18 
Udontknow hat folgendes geschrieben:
Also, ich habe ihn so verstanden, daß er einen mehrteiligen Primärschlüssel haben will:
Zitat:
Das Programm-Modul soll jetzt erweitert werden, so dass zu diesem Primary Key mehrere DS angelegt werden können.
Bei einem weiteren Unique Index wäre das ja so nicht möglich...


Sorry. Muss ich irgendwie überlesen haben.
OlliWausD Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 212

Win 2000/XP
Delphi 5 Professional - Interbase/Firebird
BeitragVerfasst: Di 01.02.05 14:16 
jo, kein Thema jasocul

is mir ja auch schon passiert :wink:

mfg

Ranger Kirby

_________________
Take it easy