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.