Newsgroup: it.comp.software.database
Titolo: Datatype contatore???

Esiste sotto Oracle un datatype di tipo contatore.
Mi spiego meglio, vorrei creare un tabella di questo tipo:
CREATE TABLE MCREPORT_DATE ("ID"   DATATYPE_CONTATORE ,
                                                                "MESE"
NUMBER,
                                                                "ANNO"
NUMBER);
Nella quale inserisco solo l'anno e il mese.
Per ogni record inserito il campo ID si incrementerà da solo.
1)
insert into MCREPORT_DATE values (2000, 2);
insert into MCREPORT_DATE values (2000, 3);
insert into MCREPORT_DATE values (2000, 4);
............
............
insert into MCREPORT_DATE values (200n, n);
2)
select * from MCREPORT_DATE
1,2000,2
2,2000,3
3,2000,4
...........
...........
n,200n,n
Grazie

 Esiste sotto Oracle un datatype di tipo contatore.
No.
Esistono le Sequence che possono essere usato per generare degli ID
univoci, ma io sconsiglio sempre.
Davide

 univoci, ma io sconsiglio sempre.
sconsigli l'uso delle sequence? fammi capire...
/G

 sconsigli l'uso delle sequence? fammi capire...
Io sconsiglio l'uso di ID autogenerati e in nessuna relazione con altri
dati inseriti dall'essere umano.
Troppe volte mi sono ritrovato con database con 50 "mario rossi", tutti
identici salvo una cosa: l'id autogenerato.
Davide

quoto quello che dice 
dav...@yahoo.com
, perché quotare è divertente!!

mah, se non vuoi 50 mario rossi puoi metterci un unique su (nome,cognome), 
ma ci sono casi in cui una sequence può servire eccome!!
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://www.gnu.org/philosophy/gif.html

 ma ci sono casi in cui una sequence può servire eccome!!
Io non dico che *non serve mai*, ci sono casi in cui una sequence (o altro
ID autogenerato) e' l'unica soluzione percorribile, obietto solo al suo 
uso indiscriminato. Se hai una possibilita' di creare una PK valida e
sensata, meglio usare quella che un'ID. 
Troppe volte vedo tabelle con
ID_SEQUENZIALE, DESCRIZIONE, FLAG_INSIGNIFICANTE
Che sono ovviamente delle boiate immani, in quanto "descrizione" gia'
dovrebbe essere un'ID piu' che sufficiente (e comprensibile), inoltre su
una tabella simile hai gia' un'indice su "descrizione" perche' e' l'unica
cosa su cui puoi fare ricerche. Lasciamo perdere l'utilita' di una simile
tabella che e' un discorso a parte...
Davide

 identici salvo una cosa: l'id autogenerato.
Eh, appunto, questo è proprio uno dei casi in cui l'ID è indispensabile 
IMHO... se i dati nella tabella verranno inseriti da operatori ignari, 
come pensi di poter fare altrimenti a ricavare una chiave decente?
-- 
Fabrizio "Hermooz" Ermini

 come pensi di poter fare altrimenti a ricavare una chiave decente?
E' il tuo compito di DBA e DB-Developer trovare una chiave decente che
*impedisca* all'operatore ignaro di inserire 50 volte lo stesso record.
Davide



E' questo il punto: cosa vuol dire "lo stesso record"?
Tu dai per scontato che in realta' ci sia un campo, che so, "nome 
cognome" che possa funzionare da chiave e quindi se ho 50 record con 
campo "nome cognome" uguale a "Mario rossi" quelli siano "lo stesso 
record".
Io dico che quelli sono 50 record DIVERSI che incidentalmente hanno lo 
stesso valore nel campo "nome cognome". Ergo, un ID mi giova moltissimo 
per gestire la mia tabella, in quanto mi svolge egregiamente la funzione 
di chiave.
Just my 2eurocent.  ;-)
bye!
-- 
Fabrizio "Hermooz" Ermini (FI)
Su BMW F 650 GS "Kandarino"

 E' questo il punto: cosa vuol dire "lo stesso record"?
"lo stesso record" indica due (o piu') istanze dello stesso oggetto
(sequenza di valori) che non siano distinguibili se non per la presenza
di un'unico valore che e' generato da un sistema esterno e non ha alcuna
relazione con gli altri valori inseriti dall'operatore.
Davide