Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Alter Table in FB (https://www.delphipraxis.net/134892-alter-table-fb.html)

Giss 31. Mai 2009 22:06

Datenbank: Firebird • Version: 2.1 • Zugriff über: FlameRobin

Alter Table in FB
 
Hallo zusammen,

Ich habe in einer Tabelle die Spalte ID als Intger und Not Null definiert. Ich möchte diese nachträglcih als Auto Increment belegen.

Ich habe folgenden Code:
SQL-Code:
Alter Table KUNDE
Alter ID to ID Type Integer Not Null Autoinc
Er gibt mir folgende Fehlermeldung, dass er den Ausdruck TYPE nicht kennt.

Ich benutze FlameRobin unter Linux um den FB-Server anzusteuern.

Könnt Ihr mir sagen, wo der Fehler liegen könnte?

mkinzler 31. Mai 2009 22:12

Re: Alter Table in FB
 
Man kann in Fb 2.1 den typ nicht so einfach ändern. Zudem kennt FB die autoinc Direktive nicht.
Was für ein Ty hat ID vorher?

Giss 31. Mai 2009 22:18

Re: Alter Table in FB
 
der Typ vorher ist auch integer not null nur halt nicht auto increment
zusätzlich liegt der primary key auf dieser Spalte.

mkinzler 31. Mai 2009 22:21

Re: Alter Table in FB
 
Dann brauchst du nichts an der Tabelle ändern sondern nur einen Generator für die Spalte anlegen, diesen auf den Wert der nächtsen ID setzen und einen Trigger anlegen, der beim Insert den Wert per GEN_ID() mit Hilfe des Generator erzeugt.

Vettel 31. Mai 2009 22:24

Re: Alter Table in FB
 
mach das am besten mit dem Spitzentool für Firebird:

http://www.sqlmaestro.com/de/product...maestro/about/

mkinzler 31. Mai 2009 22:25

Re: Alter Table in FB
 
Können auch andere AdminTools

Giss 31. Mai 2009 22:32

Re: Alter Table in FB
 
Der Tipp mit dem Trigger war gut, vielen dank dafür. Hatte das gar nicht gesehen, diese Option.


Das andere Tool schau ich mir mal an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz