J'ai actuellement une base de données Postgres 8.4 qui contient une colonne varchar (10000). Je voudrais changer cela en un varchar (255) et tronquer toutes les données qui se trouve être trop long. Comment puis-je faire ceci?Postgres: Réduire la taille varchar et tronquer
4
A
Répondre
9
Quelque chose comme ALTER TABLE t ALTER COLUMN c TYPE VARCHAR(255) USING SUBSTR(c, 1, 255)
0
BEGIN;
UPDATE table SET column = CAST(column as varchar(255));
ALTER TABLE table ALTER COLUMN column TYPE varchar(255); --not sure on this line. my memory is a bit sketchy
COMMIT;
3
1) Mettre à jour les données de la colonne en utilisant une méthode de sous-chaîne à tronquer
update t set col = substring(col from 1 to 255)
2) modifier ensuite la colonne de table
alter table t alter column col type varchar(255)
Docs ici http://www.postgresql.org/docs/8.4/static/sql-altertable.html
il semble avec plus récent pgsql ce serait: mise à jour t set col = sous-chaîne (col de 1 pour 255) ("pour" remplace "à") – user1051849