Como proteger dados com as transações SQL
É muito importante para manter a integridade dos seus dados. A transação em uma das principais ferramentas de SQL para manter a integridade do banco de dados. transações SQL e a transação padrão pode útil em determinadas situações.
Como usar transações SQL
A transação SQL encapsula todas as instruções SQL que podem ter um efeito sobre o banco de dados. Uma transação SQL é concluída com qualquer um COMMIT ou ROLLBACK declaração:
Se a transacção termina com um COMMIT, os efeitos de todas as declarações na transação são aplicadas ao banco de dados em uma seqüência de tiro rápido.
Se a transacção termina com um ROLLBACK, os efeitos de todas as declarações são revertida (Isto é, desfeita), eo banco de dados retorna ao estado em que estava antes do início da transação.
Nesta discussão, o termo aplicação significa tanto uma execução de um programa (seja em Java, C ++ ou qualquer outra linguagem de programação) ou uma série de acções efectuadas num terminal durante uma única entrada.
O pedido pode incluir uma série de transações SQL. A primeira operação SQL começa quando a aplicação begins- a última transação SQL termina quando o aplicativo termina. Cada COMMIT ou ROLLBACK que executa aplicativos termina uma transação SQL e começa a próxima. Por exemplo, um aplicativo com três operações de SQL tem o seguinte formato:
Início da aplicaçãoVários instruções SQL (SQL transação-1) confirmar ou reverterVários instruções SQL (SQL transação-2) confirmar ou reverterVários instruções SQL (SQL transação-3) COMMIT ou ROLLBACKEnd da aplicação
Uma transação SQL normal tem um modo de acesso que seja LER ESCREVER ou SOMENTE LEITURA- que tem um nível de isolamento que é SERIALIZABLE, REPEATABLE READ, READ COMMITTED, ou READ UNCOMMITTED. As características padrão são LER ESCREVER e SERIALIZABLE. Se você quer quaisquer outras características, você tem que especificá-los com um conjunto de transação declaração como a seguinte:
SET TRANSACTION LEITURA -
ou
SET transação de leitura LEIA APENAS REPEATABLE -
ou
SET TRANSACTION READ COMMITTED -
Você pode ter múltiplos conjunto de transação declarações em um aplicativo, mas você pode especificar apenas um em cada transação, e deve ser a primeira instrução SQL executada na transação. Se você quiser usar um conjunto de transação declaração, executá-lo, quer no início da aplicação ou após um COMMIT ou ROLLBACK.
É necessário executar uma conjunto de transação no início de cada transação para a qual deseja propriedades não padrão, porque cada nova transação após um COMMIT ou ROLLBACK é dada as propriedades padrão automaticamente.
UMA conjunto de transação declaração também pode especificar um TAMANHO DIAGNOSTICS, que determina o número de condições de erro para o qual a aplicação deve estar preparado para guardar informações. (Um limite Tal numérica é necessária porque uma implementação pode detectar mais de um erro durante uma instrução.) O padrão SQL para este limite é definido pela implementação, e que o padrão é quase sempre adequada.
A operação padrão
A transação SQL padrão tem características que são satisfatório para a maioria dos usuários na maioria das vezes. Se necessário, você pode especificar as características de operações diferentes, com um conjunto de transação declaração.
A operação padrão faz um par de outros pressupostos implícitos:
A base de dados vai mudar ao longo do tempo.
É sempre melhor prevenir do que remediar.
Ele define o modo para LER ESCREVER, que, como você pode esperar, permite emitir declarações que alteram o banco de dados. Ele também define o nível de isolamento SERIALIZABLE, que é o mais elevado nível de isolamento possível (portanto, o mais seguro). O tamanho diagnósticos padrão é dependente de implementação. Olhe para a documentação do SQL para ver o que o tamanho é para o seu sistema.