Seite 1 von 1

INSERT INTO oder UPDATE ... SET

Verfasst: Di, 05.10.2010 13:02
von NTClient
Hallo Jungs (und Mädels),

Glaubt mir, ich habe die Suchfunktion benutzt, aber nichts gefunden, obwohl die Frage banal ist:

Wie funktioniert der INSERT INTO Befehl? Ich will in die Spalte "Column" der Tabelle "Table" überall da, wo kein Wert drin steht den Eintrag "1" reinschreiben.

Ich habe
INSERT INTO "Table" ("Column") VALUES (1)
oder
UPDATE "table" SET "Column" = 1 WHERE 0;

Bekomme als Fehler
"Statemant does not generate a result set"

Wo nehme ich Anführungszeichen, wo runde Klammer, wo eckige Klammern?
Einer ne Idee?

Gruß Bernd!

Re: INSERT INTO oder UPDATE ... SET

Verfasst: Di, 05.10.2010 13:44
von pmoegenb
Hallo Bernd,
Insert (Hinzufügen), bzw. Update (Ändern) bezieht sich auf Datensätze und nicht auf Spalten. Bei der WHERE-Klausel fehlt bei Dir der Spaltenname.

Code: Alles auswählen

UPDATE "table" SET "Column" = 1 WHERE "Column" = 0;
Siehe http://sql.1keydata.com/de/

Re: INSERT INTO oder UPDATE ... SET

Verfasst: Mi, 06.10.2010 08:17
von NTClient
Hallo Peter,
vielen Dank für den Link! Allerdings hatte ich den vorher auch schon gefunden. Daher hatte ich ja den UPDATE-Befehl erst.

Weil aber der Befehl wie oben nicht funktionierte, wußte ich nicht, ob ich vielleicht mit Anführungszeichen oder Hochkommas etwas falsch gemacht habe. Zumal bei HSQL das wohl etwas anders zu handhaben ist als in SQL.

Wäre nett, wenn ich dazu mal generelle Informationen bekäme, also zur Verwendung der Zeichen (), [], {}, ', „“, und ´ bzw. `.

Aber die Lösung zu meinem Problem:

UPDATE "Table" SET "Column" = 1 where "Column" =0

funktioniert jetzt. Nur: Man darf den Befehl nicht in die SQL-Ansicht der Abfrage reinschreiben, sondern unter EXTRAS – SQL in einen SQL-Statement Interpreter reinschreiben. Dann auf „Ausführen“ - Siehe da! Es funktioniert!

Aber nochwas: Ich will alle Spalten, wo kein Eintrag ist mit dem Eintrag 0 versehen. wie lautet dann der Befehl?
... where "Column" = 0 funktioniert nicht
... where "Column" = Null funktioniert nicht
... where "Column" <> 2 funktioniert nicht

???

Gruß Bernd!

Verfasst: Mi, 06.10.2010 10:47
von pmoegenb
NTClient hat geschrieben:Zumal bei HSQL das wohl etwas anders zu handhaben ist als in SQL.

Wäre nett, wenn ich dazu mal generelle Informationen bekäme, also zur Verwendung der Zeichen (), [], {}, ', „“, und ´ bzw. `.

Aber die Lösung zu meinem Problem:

UPDATE "Table" SET "Column" = 1 where "Column" =0

funktioniert jetzt. Nur: Man darf den Befehl nicht in die SQL-Ansicht der Abfrage reinschreiben, sondern unter EXTRAS – SQL in einen SQL-Statement Interpreter reinschreiben. Dann auf „Ausführen“ - Siehe da! Es funktioniert!

Aber nochwas: Ich will alle Spalten, wo kein Eintrag ist mit dem Eintrag 0 versehen. wie lautet dann der Befehl?
... where "Column" = 0 funktioniert nicht
... where "Column" = Null funktioniert nicht
... where "Column" <> 2 funktioniert nicht
Hallo Bernd,
das mit der Schreibweise hat wohl eher mit OOo zu tun und weniger mit HSQLDB. Dokumentationen zu HSQLDB findest Du unter http://hsqldb.org/web/hsqlDocsFrame.html.

Wenn eine Spalte keinen Inhalt hat, kannst Du auch keinen Wert wie <> 2 oder = 0 abfragen.

Der richtige Code würde stattdessen wie folgt lauten:

Code: Alles auswählen

WHERE Column is Null
Manche DB's erfordern aber auch die zusammen geschriebene Schreibweise wie IsNull.

Re: INSERT INTO oder UPDATE ... SET

Verfasst: Mi, 06.10.2010 11:21
von NTClient
Prima! Vielen Dank!

"Befehl erfolgreich ausgeführt!"

mit Where "Column" is null


Gruß Bernd! :D

Re: INSERT INTO oder UPDATE ... SET

Verfasst: Fr, 11.03.2011 09:55
von MagJz
NTClient hat geschrieben:... Nur: Man darf den Befehl nicht in die SQL-Ansicht der Abfrage reinschreiben, sondern unter EXTRAS – SQL in einen SQL-Statement Interpreter reinschreiben. Dann auf „Ausführen“ - Siehe da! Es funktioniert!...
Danke für diesen entscheidenden Hinweis, das war auch mein Problem (wenn man von Access kommt, ist das ein wenig "doof" gelöst)