Arrays no PostgreSQL

Aquele mesmo projeto que estou trabalhando me exigiu aprender como adicionar um array em tabelas do PostgreSQL. É algo bem simples de se utilizar. Vamos começar criando uma tabela que recebe os arrays:

CREATE TABLE entrada (
  id SERIAL PRIMARY_KEY,
  nf integer,
  data_reg timestamp without time zone DEFAULT now(),
  data_inst timestamp without time zone,
  descricao text,
  materiais text[][],
  funcionario varchar(50)
)

Criei uma tabela chamada entrada, que serve para registrar materiais vindos para a instituição. As rows possuirão:

  • id (PRIMARY_KEY),
  • nf (número de nota fiscal),
  • data_reg (data em que a query será registrada),
  • data_inst (data que entrou na instituição),
  • descricao (qualquer observação que precisem colocar)
  • funcionario (id do funcionário que realizou a operação)
  • materiais (É nesse momento que inserimos os arrays...

Nesse caso, criei um campo (materiais), que é um array de arrays.  Coloco o tipo de campo, no caso text e o que define-o como array "[]", coloquei os colchetes duas vezes por que intenção é que eu possa colocar vários materiais em diferentes quantidades para cada entrada.)   Será necessário agora saber como adicionar ítens em sua tabela:  

INSERT INTO entrada(
    nf,
    data_reg,
    data_inst,
    descricao,
    materiais,
    funcionario
  )
VALUES
  (
    '65184621',
    '2012-03-04 16:21:55',
    '2012-03-09 14:52:45',
    'Entrada de material no setor',
    'George Bezerra',
    ARRAY [
        ['Resma A4 Clone',14],
        ['Caixa de Canetas BIC',9]
    ]
  )

Não vou explicar como funciona o INSERT do PostgreSQL. No valor do ítem materiais, temos um ARRAY[] que tem arrays: []. Não precisamos escrever ARRAY[], dentro de um array. Colocamos somente os valores dentro dos colchetes, da forma que está escrita no exemplo acima.

Como eu já havia dito, a dica de hoje é bem simples. Espero ter ajudado e até a próxima.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *