Fórum Como utilizar o AUTOINCREMENT com chave estrangeira #597449
27/09/2018
0
Estou com dúvidas referente a criação de chaves primarias AUTOINCREMENT, no curso de SQL com postgres não foi abordado este assunto o que me gerou dúvidas.
Tenho o seguinte esquema
TABELA pessoa
Colunas Id,nome, cpf,nascimento
A coluna ID, preciso que seja preenchida automaticamente pelo banco seguindo uma sequencia.
Primeira tentativa
Criei a tabelas com as colunas
CREATE TABLE pessoa
( id bigint NOT NULL primary key, nome varchar(20), cpf varchar(11), nascimento date
)
Criei a sequencia
CREATE SEQUENCE pessoa_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
Bom agora que inserir os valores e é aqui que estou com problemas, como fazer o insert corretamente?
Tentativa:
INSERT INTO pessoa (id,nome,cpf,nascimento)
VALUES (default,''''''''Leonan Machado'''''''',''''''''12345678910'''''''',''''''''01-03-1991'''''''')
Erro: ERROR: null value in column "id" violates not-null constraint
SQL state: 23502
Detail: Failing row contains (null, Leonan Machado, 12345678910, 1991-03-01)
Onde estou errando?
Tenho o seguinte esquema
TABELA pessoa
Colunas Id,nome, cpf,nascimento
A coluna ID, preciso que seja preenchida automaticamente pelo banco seguindo uma sequencia.
Primeira tentativa
Criei a tabelas com as colunas
CREATE TABLE pessoa
( id bigint NOT NULL primary key, nome varchar(20), cpf varchar(11), nascimento date
)
Criei a sequencia
CREATE SEQUENCE pessoa_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
Bom agora que inserir os valores e é aqui que estou com problemas, como fazer o insert corretamente?
Tentativa:
INSERT INTO pessoa (id,nome,cpf,nascimento)
VALUES (default,''''''''Leonan Machado'''''''',''''''''12345678910'''''''',''''''''01-03-1991'''''''')
Erro: ERROR: null value in column "id" violates not-null constraint
SQL state: 23502
Detail: Failing row contains (null, Leonan Machado, 12345678910, 1991-03-01)
Onde estou errando?
Leonan
Curtir tópico
+ 0
Responder
Post mais votado
27/09/2018
Olá Leonan, para auto incremento no PostgreSQL você pode tentar assim:
Como você está usando auto incremento, quem gerencia as chaves é o banco então não use o id no insert, é o banco que controla isso.
//cria a tabela
CREATE TABLE pessoa (
id serial primary key,
nome varchar(20),
cpf varchar(11),
nascimento date
)
//faz o insert
INSERT INTO pessoa (nome,cpf,nascimento) VALUES (,"Leonan Machado","12345678910","01-03-1991"')Como você está usando auto incremento, quem gerencia as chaves é o banco então não use o id no insert, é o banco que controla isso.
Marcio Souza
Responder
Gostei + 3
Mais Posts
27/09/2018
Marcio Souza
Atualizando o insert, ficou alguns erros na postagem anterior
INSERT INTO pessoa (nome, cpf, nascimento) VALUES ("Leonan Machado", "12345678910", "01-03-1991")
Responder
Gostei + 0
28/09/2018
Leonan
Muito obrigado! Ajudou :-)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)