web-dev-qa-db-fra.com

Que fait :: dans PostgreSQL?

J'ai vu :: dans divers endroits impliquant du code postgres que j'ai vu sur le net. Par exemple:

SELECT '{Apple,cherry Apple, avocado}'::text[];

Cela semble être une sorte de distribution. Quel est exactement :: en postgres et quand faut-il l'utiliser?

J'ai essayé un peu de googler et j'ai cherché dans les documents Postgres :: mais n'a obtenu aucun bon résultat.
J'ai essayé les recherches suivantes dans Google:

  • postgres double colon
  • postgres ::
  • ::

J'ai essayé les recherches suivantes dans le bouton de recherche de documents postgres

  • double colon
  • fonte du côlon double
  • ::

C'était presque embarrassant de demander SO, mais je pensais que Google verrait, espérons-le, cette réponse pour d'autres personnes à l'avenir.

59
ams

Une conversion de type spécifie une conversion d'un type de données à un autre.

PostgreSQL accepte deux syntaxes équivalentes pour les transtypages de types, le value::type Spécifique à PostgreSQL et le CAST(value AS type) standard SQL.

Dans ce cas spécifique, '{Apple,cherry Apple, avocado}'::text[]; Prend la chaîne littérale {Apple,cherry Apple, avocado} Et dit à PostgreSQL de l'interpréter comme un tableau de text.

Voir la documentation sur expressions SQL et tableaux pour plus de détails.

61
PSR