Wert in einer Tabelle fortschreiben.

From: Guenther Boelter <gboelter(at)gmail(dot)com>
To: "pgsql-de-allgemein(at)postgresql(dot)org Allgemein" <pgsql-de-allgemein(at)postgresql(dot)org>
Subject: Wert in einer Tabelle fortschreiben.
Date: 2014-01-09 12:18:11
Message-ID: 52CE9383.1020709@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Moin Moin!<br>
<br>
Ich habe eine Tabelle 'nummernkreise'. die lediglich aus den Feldern
'id', 'name' und 'wert'  besteht. <br>
<br>
<font face="monospace"><font face="Courier 10 Pitch">id    name     
     wert<br>
1     RechnungsNr    4711<br>
2     AuftragsNr     5881</font><br>
</font><br>
Insgesamt gibt es in dieser Tabelle nur so etwa 20 Datensaetze.<br>
<br>
Wird jetzt zum Beispiel eine neue Rechnung erstellt, dann holt sich
mein Programm die aktuelle Rechnungsnummer aus der Tabelle, erhoeht
diese um 1 und schreibt den neuen Wert fuer die naechste Rechnung in
die Datenbank. Das faellt jetzt sicherlich unter die Rubrik 'Mit
Kanonen auf Spatzen' schiessen, aber es geht mir ums Prinzip.<br>
<br>
Da ich unbedingt vermeiden will, dass der Wert zwischen einem SELECT
und einem anschliessenden Update zwsichenzeitlich in der Datenbank
geaendert wurde, habe ich mich zu folgender Abfrage entschlossen:<br>
<br>
UPDATE nummernkreise SET wert = wert+1 WHERE name = 'Angebot'
RETURNING wert;<br>
<br>
Das klappt auch einwandfrei. Dennoch mal die Frage an euch, ist
diese Query so in Ordnung oder wuerdet ihr das anders loesen?<br>
<br>
Ich habe leider zu viele Jahre mit MySQL gearbeitet, wo man sich
derartige Gedanken halt eher nicht macht solange es denn
funktioniert oder zu funktionieren scheint. Und nachdem ich Monate
gebraucht habe meine Software um PostgreSQL zu erweitern - was
inzwischen auch gut laeuft - opfere ich jetzt ein paar Monate mehr,
um MySQL ganz rauszuwerfen und bei der Gelegenheit auch meine
Queries zu optimieren.<br>
<br>
Falls es wichtig ist, ich programmiere unter Linux und verwende
aktuell PostgreSQL 9.2.<br>
<br>
Gruss<br>
<br>
Guenther<br>
<pre class="moz-signature" cols="72">--
DavaoSOFT, the home of ERPel
ERPel, das deutsche Warenwirtschaftssystem fuer LINUX
<a class="moz-txt-link-freetext" href="http://www.davaosoft.com">http://www.davaosoft.com</a></pre>
</body>
</html>

Attachment Content-Type Size
unknown_filename text/html 2.2 KB

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Thomas Markus 2014-01-09 12:21:19 Re: Wert in einer Tabelle fortschreiben.
Previous Message Peter Balzer 2014-01-09 10:15:09 ODBC Postgresql Driver for Windows 2008 Server 64