SQL2 table-sequence összekapcsolás

Fórumok

Ha az ember egy létrehozott szekvenciát egy konkrét táblával össze akar kapcsolni, ezt jelenleg csak manuálisan tudja megcsinálni vmi sql client/manager programmal.
Nem lehetne ezt leegyszerűsíteni úgy, hogy a szekvenciát a tds-ben definiálnánk, a
column-hoz default-ként hozzárndelnénk?
Ezután a tableentity:create metodus a táblával egyidőben létrehozhatná a szekvenciát is és mindjárt hozzá is rendelhetné a megfelelő oszlophoz.
Valami ilyesmire gondoltam:

name: testdata.a
version: "bt2tds 1.0.01"

table: konto.a

column: ID N4 d=seq_a
column: NAME C10 nn
column: VALUE N19.2
column: DATUM D
column: FLAG L

primkey: ID

index: name(NAME)

sequence: name=seq_a min=1 max=9999999 inc=2

Nagyon elvetemült gondolat?

Hozzászólások

Elvileg két lehetőség volna:

1) Lehet definiálni olyan oszlopokat, amik insertnél maguktól megkapják egy szekvencia értékét. Elsőre ez kényelmesnek tűnik, viszont az insert után nem tudod, mi lett az automatikusan kapott érték. Persze le lehet kérdezni valahogy. Ezt szeretnéd te.

2) A másik, hogy a szekvenciát az alkalmazási program kezeli, és az előre ismert értéket a program írja be a kulcsmezőbe.

Azért választottam a 2-es változatot, mert egyszerűbbnek látom, és szeretném szem előtt tartani a kulcsokat. És persze lehet olyan objektumokat írni, amik ezt belül elintézik. Végülis mindegy, valahogy dönteni kellett, ez lett.

--
CCC3

Tárolt vagy nem tárolt most mindegy. Nem emlékszem rá fejből, de Oraclenél és Postgresnél is láttam a hozzá való SQL parancsot (vagy függvényt?) és természetesen nem is hasonlítanak egymásra. Az SQL2-ben egyelőre csak ezzel a 2-vel foglalkozunk. További adatbáziskezelőknél nyilván további variációk vannak.

Szerk: nextval és currval. Csak Postgresben ezek függvények, Oracleben meg pszeudo-oszlopok, ha jól értem. Úgyhogy valamennyire mégis csak hasonlítanak.

--
CCC3