Discussione:
Scrittura database con numeratore progressivo
(troppo vecchio per rispondere)
Roberto Nenni
2005-02-10 11:35:08 UTC
Permalink
Ho una tabella con una chiave tecnica univoca che vorrei fosse calcolata in
automatico.
In Oracle si fa con un oggetto di tipo sequence ed in fase di insert basta
dire:
INSERT INTO tabella VALUES (nomesequence.NEXTVAL, valorecampo, valorecampo,
ecc.)
Su db2 as400 esiste qualcosa di analogo o devo scrivermi un trigger BEFORE
INSERT?

Grazie a tutti
Roberto Nenni
Massimiliano Toninelli
2005-02-10 11:46:46 UTC
Permalink
Post by Roberto Nenni
Ho una tabella con una chiave tecnica univoca che vorrei fosse calcolata in
automatico.
In Oracle si fa con un oggetto di tipo sequence ed in fase di insert basta
INSERT INTO tabella VALUES (nomesequence.NEXTVAL, valorecampo,
valorecampo,
ecc.)
Su db2 as400 esiste qualcosa di analogo o devo scrivermi un trigger BEFORE
INSERT?
Potresti usare RAND
Es:

SELECT RAND()
from tuofile

oppure

SELECT int(RAND()*10)
from tuofile

SELECT int(RAND()*1000)
from tuofile
--
Massimiliano

----------------------------------------
In determinate situazioni ...un grammo di pratica vale più di un chilo di
teoria!!!
http://www.toninelli.it/it/iseries.htm
http://www.toninelli.it/links
cacciamali
2005-02-10 11:54:05 UTC
Permalink
Post by Roberto Nenni
Ho una tabella con una chiave tecnica univoca che vorrei fosse calcolata in
automatico.
In Oracle si fa con un oggetto di tipo sequence ed in fase di insert basta
INSERT INTO tabella VALUES (nomesequence.NEXTVAL, valorecampo,
valorecampo,
Post by Roberto Nenni
ecc.)
Su db2 as400 esiste qualcosa di analogo o devo scrivermi un trigger BEFORE
INSERT?
anche dalla 5.3 esiste l'oggetto SQL SEQUENCE (che poi è un'area dati)
create sequence & go!

ciao
cacciamali

--------------------------------
Inviato via http://arianna.libero.it/usenet/
stefano[dot]tassi[at]gruppopro[dot]it
2005-02-10 11:59:27 UTC
Permalink
Post by Roberto Nenni
Ho una tabella con una chiave tecnica univoca che vorrei fosse calcolata in
automatico.
In Oracle si fa con un oggetto di tipo sequence ed in fase di insert basta
INSERT INTO tabella VALUES (nomesequence.NEXTVAL, valorecampo, valorecampo,
ecc.)
Su db2 as400 esiste qualcosa di analogo o devo scrivermi un trigger BEFORE
INSERT?
Grazie a tutti
Roberto Nenni
tre strade:
Puoi usare una colonna con attributo identity (puo' essere un numero
univoco sequenziale, determinata dal db),
una colonna con un tipo dato ROWID (stesso discorso ma tipo binary e non
sequenziale)
e, dalla V5R3, l'oggetto di tipo sequence (stesse funzionalità presenti su
oracle)
HTH
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Roberto Nenni
2005-02-10 12:22:51 UTC
Permalink
Post by stefano[dot]tassi[at]gruppopro[dot]it
Puoi usare una colonna con attributo identity (puo' essere un numero
univoco sequenziale, determinata dal db),
una colonna con un tipo dato ROWID (stesso discorso ma tipo binary e non
sequenziale)
e, dalla V5R3, l'oggetto di tipo sequence (stesse funzionalità presenti su
oracle)
Ho V5R1 e la colonna deve essere numerica, quindi mi interessa la 1°
soluzione, ma nel manuale non ho trovato "identity"... come si definisce?

Grazie
Roberto
stefano[dot]tassi[at]gruppopro[dot]it
2005-02-10 12:59:07 UTC
Permalink
Post by Roberto Nenni
Post by stefano[dot]tassi[at]gruppopro[dot]it
Puoi usare una colonna con attributo identity (puo' essere un numero
univoco sequenziale, determinata dal db),
una colonna con un tipo dato ROWID (stesso discorso ma tipo binary e non
sequenziale)
e, dalla V5R3, l'oggetto di tipo sequence (stesse funzionalità presenti su
oracle)
Ho V5R1 e la colonna deve essere numerica, quindi mi interessa la 1°
soluzione, ma nel manuale non ho trovato "identity"... come si definisce?
Grazie
Roberto
tempo che sia disponibile dalla V5R2 in poi...
non resta che il trigger :-(((((



un esempio che mostra la sintassi:

CREATE TABLE EMPLOYEE
(EMPNO INTEGER GENERATED ALWAYS AS IDENTITY,
NAME CHAR(30 ),
SALARY DECIMAL(5,2 ),
DEPT SMALLINT)

INSERT INTO EMPLOYEE
(NAME,SALARY,DEPTNO )
VALUES(’Rupert ’,989.99,50 )
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Roberto Nenni
2005-02-10 14:01:49 UTC
Permalink
Post by stefano[dot]tassi[at]gruppopro[dot]it
tempo che sia disponibile dalla V5R2 in poi...
no, mi funzia anche su V5R1, sarebbe la cosa ideale.
Adesso provo a vedere se c'è una cosa corrispondente su Oracle, se ci fosse
potrei gestire le cose allo stesso modo (... non vorrei essere troppo
ottimista!)

Grazie
Roberto
Stefano P
2005-02-10 12:03:14 UTC
Permalink
Post by Roberto Nenni
Ho una tabella con una chiave tecnica univoca che vorrei fosse
calcolata in automatico.
In Oracle si fa con un oggetto di tipo sequence ed in fase di insert
INSERT INTO tabella VALUES (nomesequence.NEXTVAL, valorecampo,
valorecampo, ecc.)
Su db2 as400 esiste qualcosa di analogo o devo scrivermi un trigger
BEFORE INSERT?
Da V5R2 (o, forse, V5R1) puoi definire (credo solo via SQL) un campo di
tipo... non me lo ricordo che, se ho capito ciò che ti serve, dovrebbe fare
al caso tuo...
...Stefanooooooooo (Tassi :-) dicci tu!
Post by Roberto Nenni
Grazie a tutti
Roberto Nenni
HTH
Stefano P.
--
"Niuna impresa, per minima che sia,
può avere cominciamento e fine senza queste tre cose:
e cioè senza sapere, senza potere, senza con amor volere"
[Anonimo fiorentino, XIV sec.]

(togliere le "pinzillacchere" dall'indirizzo email ;o)
Stefano P
2005-02-10 12:09:54 UTC
Permalink
Post by Stefano P
Post by Roberto Nenni
Ho una tabella con una chiave tecnica univoca che vorrei fosse
calcolata in automatico.
Da V5R2 (o, forse, V5R1) puoi definire (credo solo via SQL) un campo
di tipo... non me lo ricordo che, se ho capito ciò che ti serve,
dovrebbe fare al caso tuo...
ROWID:
CREATE TABLE ORDERS
(ORDERNO ROWID
GENERATED ALWAYS,
SHIPPED_TO VARCHAR (36) ,
ORDER_DATE DATE)
http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/sqlp/rbafymst02.htm#ToC_83
Post by Stefano P
...Stefanooooooooo (Tassi :-) dicci tu!
Ed infatti sei stato più che esaustivo :-)


Buon pranzo a tutti
Stefano P.
--
"Niuna impresa, per minima che sia,
può avere cominciamento e fine senza queste tre cose:
e cioè senza sapere, senza potere, senza con amor volere"
[Anonimo fiorentino, XIV sec.]

(togliere le "pinzillacchere" dall'indirizzo email ;o)
Mimmo
2005-02-12 10:22:13 UTC
Permalink
Post by Roberto Nenni
Ho una tabella con una chiave tecnica univoca che vorrei fosse calcolata in
automatico.
In Oracle si fa con un oggetto di tipo sequence ed in fase di insert basta
INSERT INTO tabella VALUES (nomesequence.NEXTVAL, valorecampo,
valorecampo,
Post by Roberto Nenni
ecc.)
Su db2 as400 esiste qualcosa di analogo o devo scrivermi un trigger BEFORE
INSERT?
Grazie a tutti
Roberto Nenni
puoi provare in questo modo:

CREATE TABLE Tualib/$PRIMKEY

(KAPPA DEC (5)

NOT NULL

GENERATED ALWAYS AS IDENTITY (START WITH 1),

DESCRIZIONE CHAR (20),

PRIMARY KEY (KAPPA))
Ganimede
2005-02-14 09:51:51 UTC
Permalink
Post by Roberto Nenni
Su db2 as400 esiste qualcosa di analogo o devo scrivermi un trigger BEFORE
INSERT?
Certo che esiste, gurdati il manuale di SQL e lascia perdere cose diverse.
Loading...