9 Stimmen

Postgres: Varchar-Größe verkleinern und trunkieren

Ich habe derzeit eine Postgres 8.4 Datenbank, die eine varchar(10000) Spalte enthält. Ich möchte diese in eine varchar(255)-Spalte umwandeln und alle Daten, die zu lang sind, abschneiden. Wie kann ich dies tun?

18voto

mkj Punkte 2661

Etwas wie ALTER TABLE t ALTER COLUMN c TYPE VARCHAR(255) USING SUBSTR(c, 1, 255)

5voto

codenheim Punkte 19712

1) Aktualisieren Sie die Spaltendaten mit einer Teilstring-Methode, um sie abzuschneiden

update t set col = substring(col from 1 for 255)

2) Ändern Sie dann die Tabellenspalte

alter table t alter column col type varchar(255)

Dokumente hier http://www.postgresql.org/docs/8.4/static/sql-altertable.html

1voto

Earlz Punkte 59611
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;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X