Fiz a seguinte tabela:
CREATE table IF NOT EXISTS redirect (
id INTEGER PRIMARY KEY AUTOINCREMENT,
url_from TEXT not null,
url_to TEXT not null,
method TEXT not null,
http_status_code INTEGER not null CHECK( http_status_code IN (300,301,302,304,304,308,307) ) DEFAULT 301,
use_in_https INTEGER not null CHECK(use_in_https IN (0,1)) DEFAULT 0,
use_in_http INTEGER not null CHECK(use_in_http IN (0,1)) DEFAULT 1,
exact_match INTEGER not null CHECK(exact_match IN (0,1)) DEFAULT 1
);
E fiz a seguinte trigger:
CREATE TRIGGER remove_http_https BEFORE INSERT ON redirect BEGIN
SELECT CASE WHEN NEW.url_from THEN REPLACE(REPLACE(NEW.url_from,"http:\/\/",""),"https:\/\/","") END;
END;
Mas eu quero que o gatilho seja executado quando eu atualizar um valor OU inserir um valor. Existe uma maneira de definir um único gatilho para inserir e atualizar como sqlite3?
Não, não é possível com um único gatilho lidar com a inserção e atualização.
A instrução do gatilho CREATE no gráfico mostra que apenas um dos comandos DELETE, INSERT, UPDATE pode ser usado.