Campo Array no MySQL

Galera, estou precisando de um auxílio.

Há como eu criar um campo do tipo Array no MySQL? O que eu preciso é criar um campo que possa armazenar vários valores a serem acessados separadamente.

Seria mais ou menos como se eu fizesse o seguinte:

int[] n = new int { 1, 2, 3 };
bd.executeUpdate("insert into tbl (numbers) values (" + n + ")");

Claro que, no caso acima, o array n não deveria ser manipulado por um toString.

Um exemplo disso que quero fazer é a propriedade que o PostgreSQL tem de criar um campo com o tipo assim: VARCHAR(100)[]

Onde o [] especifica que o campo poderá conter diversos valores, e que estes poderão ser acessados por índices.

Alguém conhece algo similar para o MySQL?

Att, Yky Mattshawn.

Opa. Acredito que não.

Não é melhor transformar tudo em string… e gravar como varchar mesmo?

Depois na retomada dos dados, manda pra array novamente. :?

[quote=peerless]Opa. Acredito que não.

Não é melhor transformar tudo em string… e gravar como varchar mesmo?

Depois na retomada dos dados, manda pra array novamente. :?[/quote]

Esqueci de citar.

Cara, eu já pensei nisso, e realmente é a primeira solução a se pensar. Mas é que isso seria uma tremenda gambiarra neh. Tipow, ficar fazendo split e toString o tempo todo é algo meio “impraticável”.

Entretanto, temo pelo fato de que será minha única solução :frowning:

hehe

Valew ae!

Tenta aqui:

http://www.google.com.br/search?hl=pt-BR&q=insert+array+values+into+mysql+table&meta=

:smiley:

Yky Mattshawn,

Será que não é melhor criar uma tabela auxiliar? Ou também chamada de tabela de ligação, pode ser que suas tabelas não estejam normalizadas.

Para mysql, talvez você possa utilizar os enumerations.

Veja se isso resolve seu caso.
http://dev.mysql.com/doc/refman/5.0/en/enum.html.

Até…

De fato a melhor maneira de resolver isto é usando o enum.

Abraços

nbluis e mirts: não posso usar ENUM por que eu teria que definir valores específicos, e isso não resolveria meu problema.

fsquadro, andei pensando nisso e acabará sendo a solução. Quanto à normalização, sim, elas estão normalizadas. O que ocorre é que essas tabelas eram antes implementadas em um sistema com persistência baseada em arquivos binários proprietários e que funcionavam de uma forma diferente, tanto nas chaves, índices, etc, quanto nas foreign key’s. Esse sistema tinha a capacidade de criar campos com vários valores. Usado da seguinte forma: o campo chamava-se vencimento, e era composto de 12 valores. Cada “parte” desse campo de 12 “partes” era preenchido com uma data diferente. É isso que preciso implementar.

Valew ae pela opinião.

Na minha opnião prefiro usar JoinTable com o Hibernate ele cria uma tabela auxiliar e com o id do meu objeto e o id dos objetos no array

Mas a aplicação não é em Java, cara.

A questão é no MySQL “mesmo”.

Valew.