2010-06-28 4 views
2

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

+0

Quel est le type de données de la représentation ponctuelle? –

+0

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

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.

Questions connexes