SQL SEQUENCE e NEXTVAL | |
SQL >
Linguagem SQL avançada >
SEQUENCE e NEXTVAL
A Oracle utiliza o conceito de SEQUENCE (sequência) para criar valores numéricos de chave primária à medida que adicionamos linhas de dados a uma tabela. Enquanto a população de chave primária numérica para o MySQL e o SQL Server está vinculada a tabelas individuais, no Oracle a construção da SEQUENCE é criada separadamente e não está vinculada a uma tabela específica. SintaxeA sintaxe para criar uma sequência no Oracle é a seguinte:CREATE SEQUENCE SEQUENCE_NAME
[START WITH {Initial_Value}] [INCREMENT BY {interval}]; {Initial_Value} é o valor inicial da sequência, e {interval} é o intervalo entre números de sequência consecutivos. Tanto [START WITH] quanto [INCREMENT BY] são campos opcionais. Se não forem especificados, o valor padrão para {Initial_Value} e {interval} é ambos 1. ExemploSuponha que tenhamos uma tabela com a seguinte estrutura: Tabela USER_TABLE
e que desejamos usar a seguinte sequência para gerar o userid: CREATE SEQUENCE SEQ_USER START WITH 5 INCREMENT BY 5;
Especificamos que queremos usar a sequência e a função NEXTVAL nas declarações INSERT INTO na seguinte ordem: INSERT INTO USER_TABLE VALUES (SEQ_USER.NEXTVAL, 'Washington', 'George');
INSERT INTO USER_TABLE VALUES (SEQ_USER.NEXTVAL, 'Jefferson', 'Thomas'); Agora a tabela tem as seguintes duas linhas: Tabela USER_TABLE
Vale ressaltar que uma sequência é independente de uma tabela. Em outras palavras, uma sequência pode ser usada para gerar valores de chave primária para várias tabelas, e a sequência continua mesmo que seja aplicada a uma tabela diferente. Então, digamos, por exemplo, que tenhamos uma segunda tabela, Table NEW_USERS, que tenha a mesma estrutura que a tabela USER_TABLE, e emitimos o seguinte comando SQL após executar os dois comandos SQL acima: INSERT INTO NEW_USER VALUES (SEQ_USER.NEXTVAL, 'Adams', 'John');
A tabela NEW_USER terá a seguinte linha: Tabela NEW_USER
O Userid é 15 porque esse é o próximo valor após 10.
Copyright © 2024 1keydata.com Todos os direitos reservados. |