Auto Incremento

Olá, alguém pode me dar um exemplo de como criar uma tabela no postgresql em que um campo codigo seja auto incrementavel?
ex.:

CREATE TABLE tabela
(
codigo ???,
nome varchar(50)
);

e na minha instrucao sql, como eu colocaria o valor…se é algo como:
INSERT INTO TABELA VALUES(0, ‘valor1’);
ou
INSERT INTO TABELA VALUES(null, ‘valor1’);

Alguém pode me ajudar?

cara nunca usei o postgresql
mais no mysql ficaria mais ou menos assim

CREATE TABLE tabela ( codigo integer auto_increment, nome varchar(50) );

e o insert assim:

INSERT INTO TABELA VALUES(null, 'valor1'); 

espero que tenha ajudado

No postgresql é diferente…ja tentei assim. Valeu!!!

Cara postgresql é igual no oracle vc tem que criar um sequences e triggers para incremetar.

da uma olhada aqui:

http://pgsqld.active-venture.com/sql-createsequence.html

ou na documentação do banco:

http://www.postgresql.org/docs/7.4/interactive[/url]

dei uma pesquisada e encontrei isso

[code]CREATE SEQUENCE nome_da_sequence;

create table produtos (
id_produto integer DEFAULT nextval(‘nome_da_sequence’) NOT NULL,
descricao char(60),
preco decimal (15,2),
primary key (id_produto)
);
[/code]

CREATE TABLE tabela ( codigo serial, nome varchar(50) );

Dae parceiro…
eu tenho um codigo pra geração automatica, não sei se é isso que vc quer, mas aí esta…

	// gera o codigo automatico
	private int retornaMaxUsuario() throws Exception {
		String Sql = "select max(Cd_Usuario)+1 as codigo from tab_usuario";
		PreparedStatement s = this.getConexao().prepareStatement(Sql);
		ResultSet rs = s.executeQuery();
		int codigo = 0;
		if (rs.next()) {
			if (rs.getInt("codigo") != 0) {
				codigo = rs.getInt("codigo");
			}
			this.setCd_Usuario(codigo);
		}
		return codigo;
	}

[quote=“Xandy_bq”]Dae parceiro…
eu tenho um codigo pra geração automatica, não sei se é isso que vc quer, mas aí esta…

// gera o codigo automatico private int retornaMaxUsuario() throws Exception { String Sql = "select max(Cd_Usuario)+1 as codigo from tab_usuario"; PreparedStatement s = this.getConexao().prepareStatement(Sql); ResultSet rs = s.executeQuery(); int codigo = 0; if (rs.next()) { if (rs.getInt("codigo") != 0) { codigo = rs.getInt("codigo"); } this.setCd_Usuario(codigo); } return codigo; } [/quote]

Isso numa aplicação com multi usuários pode ser perigoso. O ideal é usar o auto incremento do banco mesmo. Como o jairelton disse, use o tipo de dado serial. Ele cria uma sequence automático.