Se você precisar ativar ou desativar todos os
CHECK restrições no SQLite, você pode usar as ignore_check_constraints Declaração PRAGMA. Esta declaração pragma habilita ou desabilita explicitamente a aplicação de
CHECK restrições. A configuração padrão está desativada, o que significa que CHECK restrições são impostas por padrão. Sintaxe
A sintaxe fica assim:
PRAGMA ignore_check_constraints = boolean; Onde booleano é um valor booleano.
- Para desativar
CHECKrestrições, isso pode ser qualquer um dos seguintes:falsenooff0
- Para ativar
CHECKrestrições, isso pode ser qualquer um dos seguintes:trueyeson1
Exemplo
Primeiro, vamos criar uma tabela com um
CHECK limitação:CREATE TABLE Products(
ProductId INTEGER PRIMARY KEY,
ProductName,
Price
CHECK (Price > 0)
); Agora podemos alternar
CHECK restrições ativadas ou desativadas conforme necessário para impor ou não essa restrição. Ativar restrições CHECK
Aqui está um exemplo de como habilitar todos os
CHECK restrições:PRAGMA ignore_check_constraints = 0; Como mencionado, este é o valor padrão de qualquer maneira. Então, se você não usar esta instrução PRAGMA
CHECK as restrições já estarão definidas para esse valor. Agora vamos testar esse
CHECK restrições são de fato habilitadas ao tentar inserir dados que violem esse CHECK limitação:INSERT INTO Products VALUES
(NULL, 'Blue Widget', 0.00); Resultado:
Error: CHECK constraint failed: Products
Portanto, o
CHECK restrição foi aplicada como esperado. Desativar restrições CHECK
Aqui está um exemplo de como desabilitar todos os
CHECK restrições:PRAGMA ignore_check_constraints = 1; Agora vamos tentar inserir os mesmos dados novamente e selecionar o resultado:
INSERT INTO Products VALUES
(NULL, 'Blue Widget', 0.00);
SELECT * FROM Products; Resultado:
ProductId ProductName Price ---------- ----------- ---------- 1 Blue Widget 0.0
Como esperado, os dados conseguiram entrar no banco de dados, mesmo violando o
CHECK limitação.