Mit Sequence in Tabelle einfuegen

timtaylorrr

Grünschnabel
Hi zusammen,

ich mochte eine spalte in einer tabelle mit nummer aktualisieren. in der spalte sind aber schon nummern vorhanden, die nicht doppelt erscheinen duerfen.

ich dachte da an sowas wie, meine_sequence(max,1). das funktioniert aber nicht.

hat jemand einen tipp fuer mich?

danke
 
Hi zusammen,

ich mochte eine spalte in einer tabelle mit nummer aktualisieren. in der spalte sind aber schon nummern vorhanden, die nicht doppelt erscheinen duerfen.

ich dachte da an sowas wie, meine_sequence(max,1). das funktioniert aber nicht.

hat jemand einen tipp fuer mich?

danke

Oracle ? In Oracle würde ich dies so lösen :

1. Den höchste jetzt in der Tabelle vorkommenden Wert suchen (Select max(meinFeld) from Meine Tabelle;
2. Einen neue Sequence MeineSequence mit diesem Wert als Startwert+1 definieren
3. Ab nun diese Sequence verwenden

--Und natürlich einen UNIQUE CONSTRAINT (Soll dies ein PrimaryKey werden?)
auf das Feld legen


Gruss
 
es handelt sich um oracle.

- OK

1. Grösster Wert ermitteln, der in der Tabelle momentan vorkommt :
Code:
Select max(meinFeld) from Meine Tabelle;

--> Sagen wir, das ergibt den wert 125....--also neu 126

2. Sequence erstellen

Code:
CREATE SEQUENCE MeineSequence
  INCREMENT BY 1
  START WITH 126 <--- Da kommt der Wert hin
  MINVALUE 126
  MAXVALUE 999999999999999999999999999
  NOCYCLE
  NOORDER
  CACHE 20
/

- So, nun kannst du ab nun diese Sequence verwenden, wenn du in die Tabelle einfügst,
- Ich würde noch einen UNIQUE Index auf die Spalte legen, um sicher zu sein, das keine Doppelten Werte reingeschrieben werden (Falls die Spalte nicht eh schon der Primary Key ist....)


Gruss
 
Zurück