create table foo (Agora você deve estar se perguntando. Como eu devo fazer entao?
id int not null auto_increment primary key,
state enum('enabled', 'disabled')
state enum('enabled', 'disabled')
);
Bom, vamos mostrar então.
Primeiramente deve-se criar uma nova ’sequencia’, que é feita utilizando o comando abaixo.
CREATE SEQUENCE nomeSequencia;Por padrão se usa o nome da sequencia com o seguinte formato nomeTabela_nomePK_seq .
Utilizando o comando SQL desta forma a sua sequencia começará de 1. Utilizando a cláusuala START é possível definir o valor inicial da sequencia.
CREATE SEQUENCE nomeTabela_nomePK_seq START 103;Agora para definir uma chave primária que se auto incrementa basta definir na hora da criação da tabela desta maneira.
create table nomeTabela (Caso você não queira modificar a estrutura de uma tabela já pronta basta utilizar a funcao nextval() para incrementar o valor da sua chave primaria da seguinte maneira.
id int not null primary key default nextval('nomeSequencia'),
outroCampo varchar(8)
);
INSERT INTO nomeTabela(id, nomeDeUmCampo)Exemplo:
VALUES (nextval('nomeSequencia'), 'alguma coisa');
create sequence teste_id_seq;
create table teste (
id int not null primary key default nextval('teste_id_seq'),
nome varchar(8)
);
insert into teste(nome) values ('nome 1');
insert into teste(nome) values ('nome 2');
insert into teste(nome) values ('nome 3');
1 comentários:
Só complementando o que eu disse. Uma alternativa seria usar o tipo serial.
CREATE TABLE pessoa (
id SERIAL,
nome TEXT
);
é altomaticamente traduzido para
CREATE SEQUENCE pessoa_id_seq;
CREATE TABLE pessoa (
id INT4 NOT NULL DEFAULT nextval('pessoa_id_seq'),
nome TEXT
);
Postar um comentário