Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Primärschlüssel Datentyp ändern (https://www.delphipraxis.net/204849-primaerschluessel-datentyp-aendern.html)

lxo 6. Jul 2020 20:19

Datenbank: Firebird • Version: 3.0.6 • Zugriff über: UniDAC / IBExpert

Primärschlüssel Datentyp ändern
 
Hallo,

hat jemand ein Tipp wie man am angenehmsten ein Primärschlüssel, sowie die dazugehörigen Fremdschlüssel von Integer auf BigInt umstellen kann.

Vorgehensweise ist mir bekannt, aber vielleicht gibt es da ja Tipps wie das angenehm geht ohne alles manuell zusammenzubauen.

Ich könnte mir vorstellen in IBExpert gibt es was, finde aber leider nichts passendes um mir das wirklich zu vereinfachen.

hoika 6. Jul 2020 21:36

AW: Primärschlüssel Datentyp ändern
 
Hallo,
wenn er noch keine Foreign Keys hat, sollte es doch über
Alter Table Alter Type gehen?

Oops gerade Fremdschlüssel gelesen ...

Das geht dann doch alles per SQL:
Drop FK's
Obiger Befehl für den PK
Und die FKs wieder anlegen

IBExpert 6. Jul 2020 22:25

AW: Primärschlüssel Datentyp ändern
 
gibt verschiedene Varianten, am einfachsten aber abhängig von der Datenbankgröße
ist Tools Extract metadata inklusive daten und alles objekte, in dem Script
dann (hab ich auch in videos erklärt) dann einfach per suchen/ersetzen zB integer
durch bigint und dann script ausführen.

Das ist für sehr große Datenbank aber evtl ein wenig langsam

Alternative einfach mal auf eine pk feld in Table Editor gehen, dann unten auf die Seite
Field Dependencies umschalten, da siehst du was ggf alles davon abhängig ist.

Abhängigkeiten Problem kann vielfältig sein, allein irgendwo eine declare ... type of column ...
kann schon reichen, das es nicht so einfach geht.

Wenn du aber alle dependencies weg hast, inkl alle pk/fk constraints etc dann sollte der
alter table alter type funktionieren (trigger und sp abhängigkeiten kannst du sehr einfach
in ibexpert mit deactivate/active trg bzw sp auf dem rechten mausklick ab/anschalten


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