SóProvas


ID
2622643
Banca
Marinha
Órgão
CAP
Ano
2017
Provas
Disciplina
Banco de Dados
Assuntos

Considere os seguintes comandos SQL (padrão ANSI) executados em sequência.

CREATE TABLE "ALUNO"
(
"ALUNO_ID" integer NOT NULL,
"NOME" text,
CONSTRAINT "PK_ALUNO" PRIMARY KEY
("ALUNO_ID")
);

INSERT INTO "ALUNO"( "ALUNO_ID", "NOME") VALUES
(1, 'VINÍCIUS');
INSERT INTO "ALUNO"( "ALUNO_ID", "NOME") VALUES
(2, 'JOÃO');
COMMIT;
INSERT INTO "ALUNO"( "ALUNO_ID", "NOME") VALUES
(3, 'OSMAR');
ROLLBACK;
INSERT INTO "ALUNO"( "ALUNO_ID", "NOME") VALUES
(4, 'MARCOS');
COMMIT;

Quais os nomes inseridos na tabela ALUNO?

Alternativas
Comentários
  • INSERT INTO "ALUNO"( "ALUNO_ID", "NOME") VALUES
    (3, 'OSMAR');
    ROLLBACK;

    Se comitou não tem rollback. Se fosse possível fazer rollback de algo comitado, o commit não teria valor, pois, poderia ser revertido a qualquer momento. Isso seria desastroso, pois, poderia incorrer em milhares de inconsistências. Imagine por exemplo que você insere um registro PAI em uma transação e depois insere milhares de filhos em outras e aí se arrepende e quer dar ROLLBACK no registro Pai ? Sem dúvida um desastre, seja por inconsistência, ou por um movimento de I/O sem precedentes para desfazer todas as transações influenciadas por essa.

  • Essa é fácil , a questão só deu ROLLBACK no OSMAR mesmo , como o amigo disse , se comitou não tem roolback ;) 

  • A) VINICIUS, JOÃO, MARCOS