VTIs de leitura/escritae INSERTs
A instrução INSERT cria uma ou mais linhas, e as armazena na tabela
especificada.
O número de valores especificados na instrução INSERT deve ser idêntico ao
número de colunas especificadas ou implícitas.
Sintaxe
INSERT INTO nome-da-tabela
[ (nome-de-coluna-simples [ , nome-de-coluna-simples]* ) ]
Consulta
A Consulta pode ser:
- uma ExpressãoSeleção
- uma lista VALUES
- uma expressão VALUES de várias linhas
As listas de uma única linha e de várias linhas podem incluir a palavra chave
DEFAULT.
A especificação de DEFAULT para uma coluna insere o valor padrão da coluna na
coluna.
Outra forma de inserir o valor padrão na coluna é omitir a coluna na lista
de colunas, e somente inserir valores nas outras colunas da tabela.
Para obter mais informações deve ser consultado
VALUES Expressão.
- expressões UNION
Para obter mais informações sobre a Consulta deve ser consultada
.
INSERT INTO PAÍSES
VALUES ('Taiwan', 'TW', 'Ásia');
-- Inserir um novo departamento na tabela DEPARTAMENTOS,
-- sem atribuir gerente ao novo departamento
INSERT INTO DEPARTAMENTOS (NUM_DEP, NOME_DEP, ADMRDEPT)
VALUES ('E31', 'ARQUITETURA', 'E01');
-- Inserir dois novos departamentos na tabela DEPARTAMENTOS
-- utilizando uma instrução, como no exemplo anterior,
-- sem atribuir gerente aos novos departamentos.
INSERT INTO DEPARTAMENTOS (NUM_DEP, NOME_DEP, ADMRDEPT)
VALUES ('B11', 'COMPRAS', 'B01'),
('E41', 'ADMINISTRAÇÃO DE BANCO DE DADOS', 'E01');
-- Criar a tabela temporária MA_ATIV_EMP com as mesmas
-- colunas da tabela ATIV_EMP.
-- Carregar a tabela MA_ATIV_EMP com as linhas da tabela ATIV_EMP
-- onde o número do projeto (NUM_PROJ)
-- começa pelas letras 'MA'.
CREATE TABLE MA_ATIV_EMP
(
NUM_EMP CHAR(6) NOT NULL,
NUM_PROJ CHAR(6) NOT NULL,
ACTNO SMALLINT NOT NULL,
EMPTIME DEC(5,2),
EMSTDATE DATE,
EMENDATE DATE
);
INSERT INTO MA_ATIV_EMP
SELECT * FROM ATIV_EMP
WHERE SUBSTR(NUM_PROJ, 1, 2) = 'MA';
-- Inserir o valor DEFAULT para a coluna LOCALIZAÇÃO
INSERT INTO DEPARTAMENTOS
VALUES ('E31', 'ARQUITETURA', '00390', 'E01', DEFAULT);
Sistema de dependência de instrução
A instrução INSERT depende da tabela onde está sendo feita a inserção,
todos os seus conglomerados (unidades de armazenamento como heaps e
índices), e todas as outras tabelas citadas na consulta.
Qualquer instrução que cria ou remove um índice ou uma restrição da tabela de
destino de uma instrução INSERT preparada, invalida a instrução INSERT
preparada.