J'essaie de changer le schéma d'application d'une base de données dans Postgres ... j'ai donc besoin de copier des données d'une table à une autre. Dans la table d'origine, les coordonnées sont spécifiées sous forme de valeurs numériques dans deux colonnes distinctes, l'une pour la valeur x et l'autre pour la valeur y. Dans la nouvelle table, les coordonnées doivent être stockées en tant que valeur unique du type de données de point. Comment est-ce que je jetterais les deux valeurs numériques séparées en une qui est un point?PostgreSQL: Convertir deux valeurs numériques séparées en un point
2
A
Répondre
2
Vous devriez être en mesure de le faire:
INSERT INTO New_Table (my_id, my_point)
SELECT
my_id,
POINT(x, y)
FROM
Old_Table
Je n'ai pas PostgreSQL sur ma machine ici, donc je ne peux pas tester, mais je pense que c'est la syntaxe.
X et Y sont censés être des nombres numériques double précision. Je ne sais pas quels sont vos types de données X et Y et je ne sais pas quelles sont les conversions implicites que PostgreSQL va faire pour vous, alors vous devrez peut-être faire une conversion là aussi.
Quel est le type de données de la représentation ponctuelle? –
Lorsque j'ai créé la nouvelle table, j'ai simplement choisi le type de données pour être de type "point" qui était listé comme une option dans le menu déroulant. – nix