Seite 1 von 1
SQL Spaltenergänzung fehlerhaft?
Verfasst: Di 5. Jul 2016, 10:55
von Pit Zyclade
Hallo,
Habe eine base-Tabelle mit SQL-Befehlen erweitern wollen:
alter table "xxx" add column "yyy" varchar(10) before "Album"
Wurde als korrekt durchgeführt bestätigt.
Nun habe ich Kurioses entdeckt, wobei dies auch nur versionsbezogen (4.4.7.2) fehlerhaft sein kann:
1. Nach der Spaltenerweiterung vom Typ varchar(10) ist keine Erweiterung in der GUI-Spaltendefinition sichtbar, so dass man dort Eigenschaften niemals mehr ändern kann. (Ich glaube, das mal schon gelesen zu haben, aber müßte nicht stören, weil man ja noch immer mit SQL rankommen könnte)
2. Wenn man in der Tabelle in einem bestehenden Datensatz etwas in die hier sichtbare neue Spalte eingibt, wird bei Speicherung dies und alles im Datensatz nachfolgende spaltenweise weitergeschoben.
Also wird der Datensatz verhunzt. So ist die SQL-Fähigkeit, die Tabelle zu erweitern, nicht nutzbar!
Ist meine Beobachtung richtig?
Danke für Diskussion!
Re: SQL Spaltenergänzung fehlerhaft?
Verfasst: Di 5. Jul 2016, 16:00
von Freischreiber
Hallo,
hast du nach 1. die .odb-Datei geschlossen und neu gestartet?
Die GUI bekommt offenbar auch bei der internen HSQL-DB nicht mit, wenn man per SQL direkt etwas an der Datenbank ändert.
Gruß
Freischreiber
Re: SQL Spaltenergänzung fehlerhaft?
Verfasst: Di 5. Jul 2016, 18:10
von F3K Total
Hi, nach dem SQL Befehl:
Bereich Tabellen auswählen
Ansicht->Tabellen aktualisieren.
Fertig
Gruß R
Re: SQL Spaltenergänzung fehlerhaft?
Verfasst: Di 5. Jul 2016, 20:07
von RobertG
Hallo *,
vielleicht wäre es ein lohnendes Feature, wenn beim Schließen der direkten SQL-Eingabe das Aktualisieren der Tabellen automatisch ausgeführt würde.
Gruß
Robert
Re: SQL Spaltenergänzung fehlerhaft?
Verfasst: Mi 6. Jul 2016, 00:38
von gogo
... ohne, dass ich irgendwo nachgelesen habe, aber das EINfügen eines Feldes war früher nicht möglich. "... before "Album" ..." ging also nicht. Anhängen dagegen schon. - Ich weiß nicht ob das mit LO 5.* schon möglich ist, oder ob das "nur" ein Bug ist.
Re: SQL Spaltenergänzung fehlerhaft?
Verfasst: Mi 6. Jul 2016, 11:26
von Pit Zyclade
Danke für die vielfachen Anregungen.
Ich widerrufe meine Aussage. Bei heutiger Nachprüfung derselben Datenbank und selbiger Tabelle war unter V4.4.7.2 alles so wie es sein sollte, logischerweise also nach Schließen der db. Den Hinweis auf "Tabellen aktualisieren" werde ich mir dennoch fürs nächste Mal merken, denn es ist ja leichter als schließen+öffnen.
Nachtrag:
Auch mit "Tabellen aktualisieren" ohne Schließen der db klappt es, wie ich heute feststellen konnte. Also Danke.
Re: SQL Spaltenergänzung fehlerhaft?
Verfasst: Mi 6. Jul 2016, 16:05
von F3K Total
gogo hat geschrieben:aber das EINfügen eines Feldes war früher nicht möglich. "... before "Album" ..." ging also nicht.
@gogo
Tut mir leid, das stimmt nicht.
Ging und geht per
Extras/SQL... seit die HSQL Database Engine 1.8.0.10 im Einsatz ist immer, was auch logisch ist, denn die HSQLDB ist seit ihrem Einsatz, ich meine 2008 oder 2009, nicht verändert und per
Extras/SQL... sendet man die Befehle direkt an die DB, LO/AOO haben dabei keinen Einfluß.
Gruß R
Re: SQL Spaltenergänzung fehlerhaft?
Verfasst: Mi 6. Jul 2016, 17:30
von Freischreiber
Hi,
so ganz dasselbe scheint das aber nicht zu sein mit Ansicht - Tabellen aktualisieren.
Ich hab das gerade bei diesem Befehl hier ausprobiert:
http://www.libreoffice-forum.de/viewtop ... 470#p43289
Nach dem Befehleinfügen war im Tabellenlayout die neue Spalte erst gar nicht zu sehen. Nach Ansicht - Tabellen aktualisieren wird die neue Spalte zwar angezeigt (als letzte Spalte), aber die erste Spalte wird als Primärspalte markiert.
Erst nach Neustart hat die neue Spalte das Primärschlüssel-Symbol.
Gruß
Freischreiber
Re: SQL Spaltenergänzung fehlerhaft?
Verfasst: Do 7. Jul 2016, 09:33
von Pit Zyclade
@Freischreiber
Schön, dass Du darauf hinweist. Leider hatte ich die fehlerhafte Tabelle ohne ID (aus dem andern thread) bereits gelöscht, aber habe Deine dortige Replik heute noch gelesen.
In diesem thread hatte meine Tabelle bereits ID (primary key) und ich wollte eine einfache Spalte einfügen. In diesem Falle geht es doch tatsächlich ohne Schließen der DB. Insofern hatte ich Deine Beobachtung nicht erlebt. Werde mir aber das merken (so es noch geht, man wird älter)
Danke