web-dev-qa-db-fra.com

Qu'est-ce que le type de données bytea et quand devrais-je l'utiliser?

Dans Postgres, il existe un type de données appelé bytea

Les documents Postgres sont là pour ça: http://www.postgresql.org/docs/9.0/static/datatype-binary.html

Je ne peux pas comprendre quand j'utiliserais cela - ni comprendre vraiment le but de ce type de données.

J'ai rencontré ce terme bytea plusieurs fois et j'ai commencé à me demander "On dirait qu'ils s'attendent à ce que je comprenne cela ... Peut-être devrais-je savoir ce que c'est."

Si quelqu'un peut donner une définition simple et une circonstance donnée de la date à laquelle je pourrais l'utiliser, ce serait super utile.

Merci.

15
Walker Farrow

Je pense que la documentation est assez claire sur les différences entre bytea et text :

Les chaînes binaires se distinguent des chaînes de caractères de deux manières. Premièrement, les chaînes binaires permettent spécifiquement de stocker des octets de valeur zéro et d'autres octets "non imprimables" (généralement, des octets en dehors de la plage 32 à 126). Les chaînes de caractères interdisent zéro octet et interdisent également toutes les autres valeurs d'octet et séquences de valeurs d'octet non valides selon le codage de jeu de caractères sélectionné de la base de données. Deuxièmement, les opérations sur les chaînes binaires traitent les octets réels, tandis que le traitement des chaînes de caractères dépend des paramètres régionaux. En bref, les chaînes binaires sont appropriées pour stocker des données que le programmeur considère comme des "octets bruts", tandis que les chaînes de caractères sont appropriées pour stocker du texte.

http://www.postgresql.org/docs/9.0/static/datatype-binary.html

... il s'agit de savoir si le contenu est du "texte" (sous réserve des paramètres régionaux et d'internationalisation que vous avez appliqués à la configuration de votre serveur et au système d'exploitation sur lequel vous l'exécutez) par rapport aux tableaux "d'octets" ( séquences de valeurs binaires 8 bits --- communément appelées "octets").

(Il existe quelques distinctions techniques entre le terme "octet" et le terme "octet" - car, historiquement, certaines plates-formes et appareils informatiques utilisaient des "octets" avec parité et/ou bits d'arrêt tandis que le terme "octets" signifie toujours exactement 8 -bits; terme introduit pour clarifier les spécifications et la documentation des protocoles de mise en réseau).

17
Jim Dennis

VARBINARY, qui est un équivalent de BYTEA dans PG, peut être utilisé pour stocker OAuth tokens d'accès.

create table oauth_access_token (
  token_id VARCHAR(255),
  token BYTEA,
  .......
)
1
indika