Pessoal quero saber como funciona um campo auto-incrementador que tenho que ter no meu sistema em JAVA para ultilizar nas minhas tabelas, por exemplo se eu precisar de um registro ele é so colocar o nro de registro dele (primary key) e ele puxa todos os dados!
Isso mesmo. No PostgreSQL você precisará criar uma SEQUENCE para cada campo auto-increment.
A forma mais simples de fazer isso é declara o campo como SERIAL, assim, quando o script for executado o próprio servidor irá criar a sequence.
Algo assim:
CREATE TABLE teste (
id_teste SERIAL,
nm_teste VARCHAR(100)
)
//e para criar a PK
ALTER TABLE teste ADD CONSTRAINT pk_teste
PRIMARY KEY (id_teste);
No caso acima a sequence criada será a seguinte: teste_id_teste_seq. (O padrão é [nm_tabela]_[coluna serial]_seq);
E para recuperar a chave criada logo após inserir o registro, você deve executar o seguinte SQL: SELECT CURRVAL (‘teste_id_teste_seq’);
Olha soh no momento to precisando saber ql a sintaxe SQL pra mim adicionar um registro em uma Tabela que contenha um campo de auto-incremento, alguem sabe como?
Olha a tabela que criei e olha a linha a linha 5 do código.
PreparedStatement ps = conexao.prepareStatement("INSERT INTO teste (nm_teste) VALUES (?)"); //Aqui ta o SQL
Você basicamente informa todas as colunas da sua tabela nos primeiros () e depois os valores de cada coluna no segundo.
A única coluna que você não irá informar é a coluna com auto-incremento. E é por não informar ela que você deve declarar todas as outras, caso contrário bastaria informar os values para todas as colunas.
E caso ainda não tenha entendido, se você criar a tabela teste e executar o SQL INSERT INTO teste (nm_teste) VALUES (‘Primeiro Registro’), será inserido o registro com id_teste = 1 e nm_teste = ‘Primeiro Registro’