espressione di modifica RIGA
Un'espressione ROW CHANGE restituisce un token o una registrazione data / ora che rappresenta l'ultima modifica di una riga.
- TOKEN
- Specifica che deve essere restituito un valore BIGINT che rappresenta un punto relativo nella sequenza di modifica di una riga. Se la riga non è stata modificata, il risultato è un token che rappresenta quando è stato inserito il valore iniziale. Il risultato può essere nullo. ROW CHANGE TOKEN non è deterministico.
- DATA/ORA
- Specifica che deve essere restituito un valore TIMESTAMP che rappresenta l'ultima volta che una riga è stata modificata. Se la riga non è stata modificata, il risultato è il tempo in cui è stato inserito il valore iniziale. Il risultato può essere nullo. ROW CHANGE TIMESTAMP non è deterministico.
- PER tavolo - designatore
- Identifica la tabella in cui si fa riferimento all'espressione. Il table - designator deve identificare in modo univoco una tabella di base, una vista o un'espressione della tabella nidificata (SQLSTATE 42867). Se table - designator identifica una vista o un'espressione di tabella nidificata, l'espressione ROW CHANGE restituisce il TOKEN o TIMESTAMP della tabella base della vista o dell'espressione della tabella nidificata. L'espressione della tabella vista o nidificata deve contenere una sola tabella di base nella sua sottoselezione esterna (SQLSTATE 42867). Se il table - designator è una vista o un'espressione di tabella nidificata, deve essere deleterio (SQLSTATE 42703). Per informazioni sulle viste eliminabili, consultare la sezione
Note
diCREATE VIEW
. Il designatore della tabella di un'espressione ROW CHANGE TIMESTAMP deve essere risolto in una tabella di base che contiene una colonna di registrazione data modifica riga (SQLSTATE 55068).
Note
- ROW CHANGE TOKEN e ROW CHANGE TIMESTAMP non sono espressioni valide per una tabella Colonna - organizzata (SQLSTATE 42703).
Esempi
- Restituire un valore di registrazione data / ora che corrisponde alla modifica più recente ad ogni riga dal tavolo EMPLOYEE per i dipendenti del dipartimento 20. Ipotizza che la tabella EMPLOYEE sia stata alterata per contenere una colonna definita con la clausola ROW CHANGE TIMESTAMP.
SELECT ROW CHANGE TIMESTAMP FOR EMPLOYEE FROM EMPLOYEE WHERE DEPTNO = 20 - Restituire un valore BIGINT che rappresenta un punto relativo nella sequenza di modifica della riga corrispondente al numero di matricola 3500. Inoltre restituire il valore funzione scalare RID_BIT che deve essere utilizzato in uno scenario di blocco ottimistico di blocco. Specificare l'opzione CON UR per ottenere l'ultimo valore ROW CHANGE TOKEN.
L'istruzione precedente riesce a verificare se c'è o meno una colonna di registrazione della data di modifica della riga nella tabella EMPLOYEE. La seguente istruzione DELETE ricercata cancella la riga specificata dai valori ROW CHANGE TOKEN e RID_BIT dalla precedente istruzione SELECT, ipotizzando che i due valori di marker di parametro siano impostati sui valori ottenuti dall'istruzione precedente.SELECT ROW CHANGE TOKEN FOR EMPLOYEE, RID_BIT (EMPLOYEE) FROM EMPLOYEE WHERE EMPNO = '3500' WITH URDELETE FROM EMPLOYEE E WHERE RID_BIT (E) = ? AND ROW CHANGE TOKEN FOR E = ?
