English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico PostgreSQL

Tutorial avançado PostgreSQL

Interface PostgreSQL

AUTO INCREMENT do PostgreSQL

AUTO INCREMENT (crescimento automático) gera um número único quando um novo registro é inserido na tabela.

PostgreSQL usa séries para identificar o crescimento automático de campos, os tipos de dados incluem smallserial, serial e bigserial. Essas propriedades são semelhantes à propriedade AUTO_INCREMENT suportada pelo banco de dados MySQL.

A sentença para configurar o crescimento automático no MySQL é a seguinte:

CREATE TABLE IF NOT EXISTS `w3codebox_tbl(`
   `w3codebox_id` INT UNSIGNED AUTO_INCREMENT,
   `w3codebox_title` VARCHAR(100) NOT NULL,
   `w3codebox_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `w3codebox_id()`
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

MySQL usa a propriedade AUTO_INCREMENT para identificar o crescimento automático de campos.

PostgreSQL usa séries para identificar o crescimento automático de campos:

CREATE TABLE w3codebox
(
    id serial NOT NULL,
    alttext text,
    imgurl text
)

Faixa SMALLSERIAL, SERIAL e BIGSERIAL:

Tipo pseudocientíficoTamanho de armazenamentoFaixa
SMALLSERIAL2bytes1 até 32,767
SERIAL4bytes1 até 2,147,483,647
BIGSERIAL8bytes1 até 922,337,2036,854,775,807

Sintaxe

Sintaxe básica do tipo SERIAL如下:

CREATE TABLE tablename (
   colname SERIAL
);

Exemplo online

Suponhamos que precisamos criar uma tabela COMPANY e criar os seguintes campos:

w3codeboxdb=# CREATE TABLE COMPANY(
   ID | SERIAL | CHAVE PRIMÁRIA,
   NOME | TEXT | NÃO NULO,
   IDADE | INT | NÃO NULO,
   ENDEREÇO | CHAR(50),
   SALÁRIO | REAL
);

Agora vamos inserir alguns registros na tabela:

INSERIR EM COMPANY (NOME,IDADE,ENDEREÇO,SALÁRIO)
VALUES ('Paul', 32, 'California', 20000.00 );
INSERIR EM COMPANY (NOME,IDADE,ENDEREÇO,SALÁRIO)
VALUES ('Allen', 25, 'Texas', 15000.00 );
INSERIR EM COMPANY (NOME,IDADE,ENDEREÇO,SALÁRIO)
VALUES ('Teddy', 23, 'Norway', 20000.00 );
INSERIR EM COMPANY (NOME,IDADE,ENDEREÇO,SALÁRIO)
VALUES ('Mark', 25, 'Rich',-Mond ', 65000.00 );
INSERIR EM COMPANY (NOME,IDADE,ENDEREÇO,SALÁRIO)
VALUES ('David', 27, 'Texas', 85000.00 );
INSERIR EM COMPANY (NOME,IDADE,ENDEREÇO,SALÁRIO)
VALUES ('Kim', 22, 'South',-Hall', 45000.00 );
INSERIR EM COMPANY (NOME,IDADE,ENDEREÇO,SALÁRIO)
VALUES ('James', 24, 'Houston', 10000.00 );

Aqui estão os registros da tabela COMPANY:

 id | nome | idade | endereço | salário
----+-------+-----+------------+--------
  1 | Paul |  32 | California |  20000
  2 | Allen |  25 | Texas |  15000
  3 | Teddy |  23 | Norway |  20000
  4 | Mark |  25 | Rich |-Mond |  65000
  5 | David |  27 | Texas |  85000
  6 | Kim |  22 | South |-Hall |  45000
  7 | James |  24 | Houston |  10000