Ich habe auf einer Spalte den Datentyp varchar definiert. Einige der Einträge sind lang, mehr als 179 Zeichen. Dadurch zieht es diese Spalte extrem in die Breite und die Tabelle lässt sich nur unschön (mit Zeilenumbrüchen) auf dem Bildschirm anzeigen.
Gibt es eine Möglichkeit, z.B. nur die ersten 25 oder 30 Zeichen der Werte in der Spalte anzeigen zu lassen?
Habe nach z.B. nach “truncate” gegoogelt für postgres…bisher habe ich noch nichts gescheites gefunden…
mein problem ist grundsätzlich dann, wenn ich einfach SELECT * FROM tabelle; mache und dann eine Spalte viel zu breit ist. Nicht wenn ich eine Abfrage mache.
Gibt es nicht vielleicht einen Parameter, den man beim Datentyp varchar angeben kann, damit er nur z.B. 25 Zeichen anzeigt?
edb=*# create table datamower(id int generated always as identity, big_text varchar);
CREATE TABLE
edb=*# insert into datamower (big_text ) values ('Das soll jetzt mal eine Demo sein');
INSERT 0 1
edb=*# create view view_datamower as select id, substring(big_text, 1,8) from datamower;
CREATE VIEW
edb=*# select * from view_datamower ;
-[ RECORD 1 ]-------
id | 1
substring | Das soll
edb=*# \x
Expanded display is off.
edb=*# select * from view_datamower ;
id | substring
----+-----------
1 | Das soll
(1 row)
edb=*#
Cool, danke Das probiere ich dann mal aus…kann ich nachvollziehen dein Beispiel, bis auf “generated always as identity”, das verstehe ich noch nicht ganz. Braucht es das zwingend?
Das bewirkt, daß diese Spalte IMMER automatisch erzeugt wird.
edb=*# insert into datamower (id,big_text ) values (2,'Test');
FEHLER: kann nicht in Spalte »id« einfügen
DETAIL: Spalte »id« ist eine Identitätsspalte, die als GENERATED ALWAYS definiert ist.
HINT: Verwenden Sie OVERRIDING SYSTEM VALUE, um diese Einschränkung außer Kraft zu setzen.
edb=*#
…habe jetzt gerade noch festgestellt, das in pgAdmin die Spaltenbreite nicht automatisch dem breitesten Eintrag angepasst wird, wie das in psql passiert. Interessant.