update tables postgres ejemplo describe postgresql syntax types casting typecast-operator

tables - ¿Qué hace:: do en PostgreSQL?



use database postgres (2)

Esta pregunta ya tiene una respuesta aquí:

He visto :: en variedad de lugares que implican el código postgres que he visto en la red. Por ejemplo:

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

Parece ser un tipo de elenco. ¿Qué es exactamente :: en postgres y cuándo debería usarse?

Intenté buscar en Google y busqué en los documentos de Postgres para :: pero no obtuve buenos resultados.
Intenté seguir búsquedas en Google:

  • postgres colon doble
  • postgres ::
  • ::

Probé las siguientes búsquedas en el botón de búsqueda de documentos de postgres

  • colon doble
  • doble colon molde
  • ::

Esto fue casi vergonzoso para preguntar por SO, pero supuse que Google vería esta respuesta para otras personas en el futuro.


Un tipo de conversión especifica una conversión de un tipo de datos a otro.

PostgreSQL acepta dos sintaxis equivalentes para el tipo de moldes, el value::type específico de PostgreSQL y el CAST(value AS type) estándar de SQL CAST(value AS type) .

En este caso específico, ''{apple,cherry apple, avocado}''::text[]; toma la cadena literal {apple,cherry apple, avocado} y le dice a PostgreSQL que la interprete como una matriz de text .

Consulte la documentación sobre expresiones SQL y arrays para obtener más información.


Lo que escribieron @PSR y @Craig .
Además, hay dos variantes más de sintaxis :

1. type value

Esta forma solo arroja constantes (literales de cadena). Como en:

SELECT date ''2013-03-21'';

Más en el manual en el capítulo Constantes de otros tipos .

2. type(value)

Esa es la sintaxis similar a la función. Funciona solo para tipos cuyos nombres son válidos como nombres de funciones. Como en:

SELECT date(date_as_text_col) FROM tbl;

Más en el manual en el capítulo Type Casts .