///
CREATE TABLE livros(Codigo INT,Titulo TEXT,Autor INT,ISBN TEXT NOT NULL); CREATE TABLE autores(Nome TEXT,Codigo INT); CREATE VIEW view1 AS SELECT A.Codigo,A.Titulo,A.ISBN,A.Autor,B.Nome FROM livros A, autores B ON A.Autor = B.Codigo ORDER BY A.Codigo; CREATE TRIGGER tr_livros BEFORE INSERT ON livros FOR EACH ROW BEGIN SELECT CASE WHEN (NEW.Codigo IS NULL) OR (NEW.Titulo IS NULL) OR (NEW.Autor IS NULL) OR ((SELECT Codigo FROM livros WHERE Codigo = NEW.Codigo) IS NOT NULL) OR ((SELECT Codigo FROM autores WHERE Codigo = NEW.Autor) IS NULL) THEN RAISE(ABORT,"Dados invalidos") END; END; -- insert 1 INSERT INTO autores VALUES("Boris Pasternak",1); -- insert 2 INSERT INTO livros VALUES(1,"Doutor Jivago",1,"9788577990375"); -- insert 3 INSERT INTO autores VALUES("Margaret Mitchell",2); -- insert 4 INSERT INTO livros VALUES(1,"E o Tempo Levou",2,""); -- query view SELECT * FROM view1;
Com base no código apresentado, ao ser executado o comando: -- insert 4 INSERT INTO livros VALUES(1,"E o Tempo Levou",2,""); será