Pular para o conteúdo

Fóruns SQL e PL/SQL INSERT ALL | INSERT FIRST INSERT ALL | INSERT FIRST

#102270
viniciusga
Participante

    Burga, muito obrigado pela resposta. Porém ainda não consegui entender na prática. O que eu havia entendido era exatamente o que você disse, quando retornar TRUE para uma condição ele iria parar de verificar as seguintes.

    Porem eu rodei algo semelhante com o que você passou:

    insert first
    when employee_id < 150 then
    into tabela01 values (employee_id, salary, manager_id)
    when employee_id < 200 then
    into tabela02 values (employee_id, salary, manager_id)
    else
    into tabela03 values (employee_id, salary, manager_id)
    select employee_id, salary, manager_id, department_id from employees;

    Nesse caso o que eu imaginei que faria era que assim que ele verificasse a primeira condição ( < 150) ele iria encontrar registros. Encontrando seria TRUE, então iria inserir apenas na tabela01 e não iria nem verificar as seguintes.

    Porem quando executo o que ocorre é que insere nas 3 tabelas. Tabela01 recebe os ID de 1 a 149, Tabela02 recebe os ID de 150 a 199, e Tabela03 recebe os ID de 200 pra frente…

    Então não é igual ao INSERT ALL?