2011-02-16 14 views

Respuesta

22

Pueden estar basados ​​en SESSION (los datos sobreviven a una confirmación pero no a una desconexión/reconexión). También pueden ser basados ​​en TRANSACCIÓN (los datos desaparecen después de una confirmación).

Esto crea una tabla temporal basado en las transacciones:

create global temporary table temp_table_transaction on commit delete rows ... 

Esto crea una tabla temporal basada sesión:

create global temporary table temp_table_transaction on commit preserve rows ... 
13

Cuando se crea un temporary table tiene two options para la persistencia de datos:

  • ON COMMIT DELETE ROWS (por defecto) y
  • ON COMMIT PRESERVE ROWS

Si no se especifica una cláusula de persistencia, o especificar ON COMMIT DELETE ROWS , los datos en la tabla serán específicos de la transacción (se eliminarán al confirmar o revertir).

Si especifica ON COMMIT PRESERVE ROWS, los datos permanecerán hasta el final de su sesión.

+0

** ON COMMIT ** solo funciona en ** DECLARE ** GLOBAL TEMPORAY TABLE – Stavr00

+2

@ Stavr00 Well 'DECLARE GLOBAL TEMPORARY TABLE' no es un comando válido, así que no estoy seguro de entender lo que intentas decir aquí. –

+0

Todavía no entiendo lo que significa tampoco. – Chad

5

Si la tabla se crea con "el compromiso de preservar filas", entonces los datos se mantendrán hasta el final de la sesión actual. Si se creó con "en las filas de eliminación de confirmación", permanecerá hasta la siguiente confirmación o reversión.

Cuestiones relacionadas