dax4fun
Goto Top

Primärschlüsselfehler bei insert Statement

Hi liebe Leute,

info: habe bei einer DB per select die gewünschten Daten abgefragt und in eine csv gesichert.
Habe zur Probe eine Zeile zurück schreiben wollen, dann kam das Problem mit dem Primärschlüssel

Ich muss wahrscheinlich etwas ändern damit es geht aber was???
INSERT INTO "WORK" ("UID", ...) VALUES ('C776CCAB70188444805687530AA209DB', ...);  
bei Metadata hab ich das gefunden
CONSTRAINT "PK_WORK" PRIMARY KEY ("UID")  
;
Interbase 6.0
mfG

Content-Key: 264657

Url: https://administrator.de/contentid/264657

Printed on: April 19, 2024 at 06:04 o'clock

Member: AndreasHoster
AndreasHoster Feb 26, 2015 at 15:59:04 (UTC)
Goto Top
UID sollte eindeutig sein.
Erneut dieselbe UID reinschreiben ist nicht zulässig.
Member: dax4fun
dax4fun Feb 26, 2015 at 16:13:24 (UTC)
Goto Top
hi @AndreasHoster

Ist mir Klar, aber wie kann ich einen neuen PS generieren ?? gibts da einen sql befehl der einen neuen PS generiert weil die DB ist Leer wo ich die Daten versuche zu kopieren (Struktur ist vorhanden).

hmm
Member: Gersen
Gersen Feb 27, 2015 updated at 11:37:11 (UTC)
Goto Top
Hallo,

in der Regel wird der Primary Key per "Autoincrement"-Generator angelegt. D.h., die Datenbank vergibt den Wert selbst beim Einfügen eines Datensatzes (s.a. hier und hier).
Versuch doch mal Deinen INSERT-Befehl ohne das Feld "UID" und den Wert (alternativ: mit Feld "UID" und Wert 0).

Gruß,
Gersen
Member: dax4fun
dax4fun Feb 27, 2015 updated at 19:45:34 (UTC)
Goto Top
Hi Gersten,
Hab ich Versucht ohne UID und ohne Wert -> error (noch nicht probiert UID mit wert 0 wird das funktionieren wenn Feld NOT NULL ist ) werd ich noch versuchen...

Ich hab ein wenig rekursiv gedacht und eine andere Lösung gefunden brauche aber eine Bestätigung ob es ok ist :

Idee 1 wO. : DB voll -> gebrauchte Daten speichern -> neue DB ----> Daten zurück

Idee 2 : DB voll -> nicht gebrauchte Daten löschen -> Backup -> Restore

Ist Idee 2 genau so wie eine Neue DB, da alle Daten die älter als 7 Tage gelöscht werden und durch Restore die DB optimiert wird ????

Mit freundlichen Grüßen
dax
Member: Gersen
Solution Gersen Mar 02, 2015 updated at 20:50:39 (UTC)
Goto Top
Hallo,

Idee 1 ist n.m.M. keine Lösung, da eine DB erzeugt wird, die ebenso voll ist, oder?
Idee 2 ist für wichtige Produktiv-Daten gefährlich - geht beim Löschen etwas schief, ist Feierabend. Sicherer wäre:

DB --> Backup1 --> nicht gebrauchte Daten löschen --> Backup2 --> Restore aus Backup2. Bei Fehlern kann man immer noch Backup1 "restorieren".

Gruß,
Gersen
Member: dax4fun
dax4fun Mar 02, 2015 at 20:50:32 (UTC)
Goto Top
Hallo Gersen,

Stimmt, Idee 2 ist ein wenig gefährlich aber ich mach ja sowieso ein Backup auf Dateiebene, ohne das etwas geändert wird somit hab ich alle Daten. Bei der Weiterverarbeitung geschiet alles auf der tempDB.

Und ich bin ja auch noch da face-smile

Viel Spass noch und Danke dir für deine Unterstützung

mfG dax