n° 174
Maggio 2012
Maggio 18, 2012, 06:40:03 am *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  

* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Domanda sui trigger oracle...  (Letto 420 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
QuasarLex
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 14


Mostra profilo E-mail
« inserita:: Febbraio 04, 2012, 08:10:39 pm »

Scusate ho una domanda sui trigger ( Oracle )

Si vuole definire un trigger che autoincrementa un attributo ( per esempio la chiave ) ad ogni INSERT

il professore ha fatto:

Codice:
CREATE SEQUENCE sequenza1
start with 1
increment by 1;

CREATE SEQUENCE sequenza2
start with 1
increment by 1;

CREATE OR REPLACE
TRIGGER auto_trigger1
BEFORE INSERT ON Impiegati_Logr
FOR EACH ROW
BEGIN
  SELECT sequenza1.nextval
  INTO :new.ID FROM dual;
end;

CREATE OR REPLACE
TRIGGER auto_trigger2
BEFORE INSERT ON Impiegati_Logr
FOR EACH ROW
BEGIN
  SELECT sequenza2.nextval
  INTO :new.ID FROM dual
END;

INSERT INTO Impiegati_Logr( Logdata, Azione ) VALUES (sysdate , 'update' );

SELECT *
FROM Impiegati_Logr


Ora... varie domande...

1) una SEQUENCE ha sempre uno start e un increment? O si può usare anche per altre cose??
2) quando usa sequenza1.nextval ... nextval è una parola chiave del linguaggio o cosa???
3) FROM dual; che significa Che?!? sono entrambe parole chiavi??
4) Perchè definsice due sequenze e due trigger per fare la stessa cosa??? Mi sfugge qualcosa..

help Triste
Registrato
QuasarLex
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 14


Mostra profilo E-mail
« Risposta #1 inserita:: Febbraio 06, 2012, 04:06:30 pm »

Nessuno sa darmi una mano?  Che?!?
Registrato
Traversadicupini
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 3


Mostra profilo
« Risposta #2 inserita:: Febbraio 14, 2012, 12:06:30 pm »

Ora... varie domande...

1) una SEQUENCE ha sempre uno start e un increment? O si può usare anche per altre cose??
2) quando usa sequenza1.nextval ... nextval è una parola chiave del linguaggio o cosa???
3) FROM dual; che significa  sono entrambe parole chiavi??
4) Perchè definsice due sequenze e due trigger per fare la stessa cosa??? Mi sfugge qualcosa..

help

1) Certo e per cosa altro la vorresti usare... si tratta di un contatore che ad ogni chiamata di una .netxval si incrementa e non necessita di una commit per l'incremento

2) netval è un metodo, una funzione della sequence

3) dual è un oggetto di sistema e si usa per vari scopi soprattutto per restituire valori calcolati da funzioni e restituisce sempre una sola riga

4) il codice crea due oggetti diversi, due trigger differenti, che vengono richiamati nello stesso evento: il "before insert" inteviene prima di effettuare l insert nella tabella; in questo caso ce ne sono due diversi mail motore, non riscontrando alcuna anomalia, ne esegue uno solo dei due (credo quello che in ordine alfabetico venga prima, ignorandone il secondo). Inserisce cmq un solo record.

Ciao
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2011 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



Links to Page