durchnummeriertes Feld in Abfrage einfügen?

durchnummeriertes Feld in Abfrage einfügen?

am 04.05.2006 11:48:31 von Stephan Menzel

Hallo,

ich habe eine Abfrage SELECT `Name` FROM `Person`
und benötigte dazu aber noch ein Nummeriertes Feld
mit 1, 2, 3, 4, ... das dann SELECT ? AS `Nummer`, `Name` FROM
`Person`;
Wie kann ich in einer SELECT abfrage ein vortlaufend Nummeriertes Feld
generieren?


cu stephan

Re: durchnummeriertes Feld in Abfrage einfügen?

am 04.05.2006 12:11:27 von Christian Kirsch

spacetracer@gmx.de schrieb:
> Hallo,
>
> ich habe eine Abfrage SELECT `Name` FROM `Person`
> und benötigte dazu aber noch ein Nummeriertes Feld
> mit 1, 2, 3, 4, ... das dann SELECT ? AS `Nummer`, `Name` FROM
> `Person`;
> Wie kann ich in einer SELECT abfrage ein vortlaufend Nummeriertes Feld
> generieren?

Vielleicht mit User-Variablen. Andererseits würde ich sowas eher in
der Anwendung machen.

Re: durchnummeriertes Feld in Abfrage einfügen?

am 04.05.2006 12:18:24 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: durchnummeriertes Feld in Abfrage einfügen?

am 04.05.2006 12:22:43 von Christian Kirsch

Andreas Kretschmer schrieb:
> begin spacetracer@gmx.de schrieb:
>> Hallo,
>>
>> ich habe eine Abfrage SELECT `Name` FROM `Person`
>> und benötigte dazu aber noch ein Nummeriertes Feld
>> mit 1, 2, 3, 4, ... das dann SELECT ? AS `Nummer`, `Name` FROM
>> `Person`;
>> Wie kann ich in einer SELECT abfrage ein vortlaufend Nummeriertes Feld
>> generieren?
>
> Mit einer Sequence.
>
> begin;
> create temporary sequence foo_seq;
> select nextval('foo_seq'), name from person;
> rollback;
>
> Vermutlich kann MySQL auch Sequencen oder hat ähnliche Mittel, i don't
> know.

Du vermutest flasch. Auch an dieser Stelle implementiert MySQL noch
kein SQL99

Re: durchnummeriertes Feld in Abfrage einfügen?

am 04.05.2006 12:23:14 von Axel Schwenke

spacetracer@gmx.de wrote:

> Wie kann ich in einer SELECT abfrage ein vortlaufend Nummeriertes Feld
> generieren?

Normalerweise würde man das in der Applikation erledigen, indem
man beim Lesen einer Zeile aus dem Ergebnis eine Zählvariable
inkrementiert.

Das gleiche kann man auch innerhalb der Datenbank machen:

SET @x=0;
SELECT @x:=@x+1 AS lfdNr, ...


XL

Re: durchnummeriertes Feld in Abfrage einfügen?

am 04.05.2006 12:26:33 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: durchnummeriertes Feld in Abfrage einfügen?

am 04.05.2006 14:29:42 von steinboeck

spacetracer@gmx.de schrieb:
> Wie kann ich in einer SELECT abfrage ein vortlaufend Nummeriertes Feld

fortlaufend:
select id, (select Count(id) FROM tab_order as t
where t.id
kompliziert wird's, wenn du noch ein Selectionskriterium einbauen willts:

select id, (select Count(id) FROM tab_order as t
where t.id from tab_order o
where nochmaldeinkriterium_fuer_o

im prinzip kann man das auch so ähnlich für Running-summs verwenden.

Und Kommentare über das Laufzeitverhalten verbitt' ich mir ;_)

Michael

Re: durchnummeriertes Feld in Abfrage einfügen?

am 04.05.2006 22:30:27 von Stephan Menzel

>> Wie kann ich in einer SELECT abfrage ein vortlaufend Nummeriertes Feld
>> generieren?
>
>Normalerweise würde man das in der Applikation erledigen, indem
>man beim Lesen einer Zeile aus dem Ergebnis eine Zählvariable
>inkrementiert.
>
>Das gleiche kann man auch innerhalb der Datenbank machen:
>
>SET @x=0;
>SELECT @x:=@x+1 AS lfdNr, ...

Also diese angabe konnte ich nicht nachvollziehen!
Das Feld enthielt immer NULL.
Die Ausführung von Michael klappte da eher!

danke für eure Hilfe!

cu stephan

Re: durchnummeriertes Feld in Abfrage einfügen?

am 05.05.2006 10:29:23 von Axel Schwenke

Stephan wrote:
/me wrote:

>>> Wie kann ich in einer SELECT abfrage ein vortlaufend Nummeriertes Feld
>>> generieren?
>>
>>Normalerweise würde man das in der Applikation erledigen, indem
>>man beim Lesen einer Zeile aus dem Ergebnis eine Zählvariable
>>inkrementiert.
>>
>>Das gleiche kann man auch innerhalb der Datenbank machen:
>>
>>SET @x=0;
>>SELECT @x:=@x+1 AS lfdNr, ...
>
> Also diese angabe konnte ich nicht nachvollziehen!
> Das Feld enthielt immer NULL.

Dann machst du was flashc. Guckst du:

mysql>create table foo (bar int);
Query OK, 0 rows affected (0,00 sec)

mysql>insert into foo values (42), (4711);
Query OK, 2 rows affected (0,00 sec)

mysql>set @x=0;
Query OK, 0 rows affected (0,00 sec)

mysql>select @x:=@x+1 as lfdnr, bar from foo;
+-------+------+
| lfdnr | bar |
+-------+------+
| 1 | 42 |
| 2 | 4711 |
+-------+------+


> Die Ausführung von Michael klappte da eher!

LOL. Das ist so ziemlich die ineffizienteste Variante, das zu machen.
Schreibt er ja selber. Welchen Grund gibts denn dafür, das *nicht* in
der Anwendung, sondern in der Datenbank machen zu müssen?


XL

Re: durchnummeriertes Feld in Abfrage einfügen?

am 08.05.2006 10:17:03 von Stephan Menzel

>/me wrote:
>
>>>> Wie kann ich in einer SELECT abfrage ein vortlaufend Nummeriertes Feld
>>>> generieren?
>>>
>>>Normalerweise würde man das in der Applikation erledigen, indem
>>>man beim Lesen einer Zeile aus dem Ergebnis eine Zählvariable
>>>inkrementiert.
>>>
>>>Das gleiche kann man auch innerhalb der Datenbank machen:
>>>
>>>SET @x=0;
>>>SELECT @x:=@x+1 AS lfdNr, ...
>>
>> Also diese angabe konnte ich nicht nachvollziehen!
>> Das Feld enthielt immer NULL.
>
>Dann machst du was flashc. Guckst du:
>
>mysql>create table foo (bar int);
>Query OK, 0 rows affected (0,00 sec)
>
>mysql>insert into foo values (42), (4711);
>Query OK, 2 rows affected (0,00 sec)
>
>mysql>set @x=0;
>Query OK, 0 rows affected (0,00 sec)
>
>mysql>select @x:=@x+1 as lfdnr, bar from foo;
>+-------+------+
>| lfdnr | bar |
>+-------+------+
>| 1 | 42 |
>| 2 | 4711 |
>+-------+------+

Ich habe dein Beispiel abgetipt und bei mir wird folgendes Ergebnis
geliefert:
+-------+------+
| lfdnr | bar |
+-------+------+
| 0 | 42 |
| 0 | 4711 |
+-------+------+
Mysql version 5.0.15!

>. Welchen Grund gibts denn dafür, das *nicht* in
>der Anwendung, sondern in der Datenbank machen zu müssen?
Warum sollte ich eine Tabelle in der anwendung noch einmal ändern,
wenn es der server bei der Abfrage gleich mit erledigen kann?


cu stephan

Re: durchnummeriertes Feld in Abfrage einfügen?

am 08.05.2006 14:37:22 von Thomas Rachel

Stephan Menzel wrote:

>>mysql>select @x:=@x+1 as lfdnr, bar from foo;
>>+-------+------+
>>| lfdnr | bar |
>>+-------+------+
>>| 1 | 42 |
>>| 2 | 4711 |
>>+-------+------+
>
> Ich habe dein Beispiel abgetipt und bei mir wird folgendes Ergebnis
> geliefert:
> +-------+------+
> | lfdnr | bar |
> +-------+------+
> | 0 | 42 |
> | 0 | 4711 |
> +-------+------+
> Mysql version 5.0.15!

Sehr seltsam. Vielleicht ein Bug in der von Dir verwendeten Version?

> Warum sollte ich eine Tabelle in der anwendung noch einmal ändern,
> wenn es der server bei der Abfrage gleich mit erledigen kann?

Es ist ja nicht direkt ein Ändern - Du kannst in der Ausleseschleife ja
durchaus auch eine Zählvariable mitlaufen lassen. Kommt eben drauf an, was
Du genau vorhast. Wenn es nur ums Anzeigen geht, geht das durchaus auch
ohne Änderung der Resultinhalte.


Thomas

Re: durchnummeriertes Feld in Abfrage einfügen?

am 08.05.2006 15:00:17 von Axel Schwenke

Stephan Menzel wrote:
>>/me wrote:
>>>
>>> Also diese angabe konnte ich nicht nachvollziehen!
>>> Das Feld enthielt immer NULL.
>>
>>Dann machst du was flashc.

> Ich habe dein Beispiel abgetipt und bei mir wird folgendes Ergebnis
> geliefert:
> +-------+------+
>| lfdnr | bar |
> +-------+------+
>| 0 | 42 |
>| 0 | 4711 |
> +-------+------+

Keine Errors oder Warnings? Wirklich richtig abgetippt?
Die Variable auch initialisiert (set @x=0)?

> Mysql version 5.0.15!

Die solltest du schleunigst updaten. 5.0.15 war das erste "stable"
Release von 5.0 und mit ziemlich heißer Nadel gestrickt :-O

*Eventuell* hast du ja einen Bug in 5.0.15 gefunden; in 5.0.20
funktioniert das jedenfalls. Außerdem sollte es auch mit 4.1, 4.0
und sogar 3.23 gehen (im Gegensatz zu Subselects).


>> Welchen Grund gibts denn dafür, das *nicht* in
>> der Anwendung, sondern in der Datenbank machen zu müssen?

> Warum sollte ich eine Tabelle in der anwendung noch einmal ändern,
> wenn es der server bei der Abfrage gleich mit erledigen kann?

1. Die laufende Nummer hat mit den eigentlichen Daten nix zu tun.
Mit der gleichen Begründung könntest du auch Zufallszahlen von
der Datenbank erzeugen lassen oder nach dem Datum fragen [1].

2. Du erzeugst (für die Datenbank) nutzlose Daten auf dem Server.
Das verbraucht Ressourcen. Server hat man i.d.R. nur einen,
Clients hingegen eher viele. Es ist also besser, das auf dem
Client zu machen.

Ganz allgemein habe ich das Gefühl, daß du einen Denkfehler machst,
wenn du eine Durchnumerierung der Zeilen in einem SQL-Ergebnis haben
willst. SQL-Ergebnisse sind Mengen, keine Arrays.


[1] Ich weiß gar nicht mehr, ob ich das gelesen habe oder ob es mir
mal jemand erzählt hat: es war mal ein Programm, das unerklärlich
langsam lief. Schließlich erbarmte sich ein Programmierer und
schaute mal rein, warum. Ergebnis: irgendwo in einer inneren
Schleife brauchte der Programmierer den Wochentag zu einem
Datums-String. Die beste "Lösung" die ihm eingefallen ist, war
die Datenbank zu fragen.


XL

Re: durchnummeriertes Feld in Abfrage einfügen?

am 08.05.2006 16:45:56 von Stephan Menzel

>>>>
>>>> Also diese angabe konnte ich nicht nachvollziehen!
>>>> Das Feld enthielt immer NULL.
>>>
>>>Dann machst du was flashc.
>
>> Ich habe dein Beispiel abgetipt und bei mir wird folgendes Ergebnis
>> geliefert:
>> +-------+------+
>>| lfdnr | bar |
>> +-------+------+
>>| 0 | 42 |
>>| 0 | 4711 |
>> +-------+------+
>
>Keine Errors oder Warnings? Wirklich richtig abgetippt?
>Die Variable auch initialisiert (set @x=0)?
>
>> Mysql version 5.0.15!
>
>Die solltest du schleunigst updaten. 5.0.15 war das erste "stable"
>Release von 5.0 und mit ziemlich heißer Nadel gestrickt :-O
>
>*Eventuell* hast du ja einen Bug in 5.0.15 gefunden; in 5.0.20
>funktioniert das jedenfalls. Außerdem sollte es auch mit 4.1, 4.0
>und sogar 3.23 gehen (im Gegensatz zu Subselects).
>
>
>>> Welchen Grund gibts denn dafür, das *nicht* in
>>> der Anwendung, sondern in der Datenbank machen zu müssen?
>
>> Warum sollte ich eine Tabelle in der anwendung noch einmal ändern,
>> wenn es der server bei der Abfrage gleich mit erledigen kann?
>
>1. Die laufende Nummer hat mit den eigentlichen Daten nix zu tun.
> Mit der gleichen Begründung könntest du auch Zufallszahlen von
> der Datenbank erzeugen lassen oder nach dem Datum fragen [1].
>
>2. Du erzeugst (für die Datenbank) nutzlose Daten auf dem Server.
> Das verbraucht Ressourcen. Server hat man i.d.R. nur einen,
> Clients hingegen eher viele. Es ist also besser, das auf dem
> Client zu machen.
Sie dient als rechnungsposition, und muss auch mit gespeichert werden!
Deshalb, finde ich hat es sehr wohl der server zu erzeugen, da dieser
über eine StoredProcedure die Rechnung auch aufnimmt!


cu stephan

Re: durchnummeriertes Feld in Abfrage einfügen?

am 08.05.2006 16:59:58 von Stephan Menzel

>> Ich habe dein Beispiel abgetipt und bei mir wird folgendes Ergebnis
>> geliefert:
>> +-------+------+
>>| lfdnr | bar |
>> +-------+------+
>>| 0 | 42 |
>>| 0 | 4711 |
>> +-------+------+
>
>Keine Errors oder Warnings? Wirklich richtig abgetippt?
>Die Variable auch initialisiert (set @x=0)?
>
>> Mysql version 5.0.15!
>
>Die solltest du schleunigst updaten. 5.0.15 war das erste "stable"
>Release von 5.0 und mit ziemlich heißer Nadel gestrickt :-O
>
>*Eventuell* hast du ja einen Bug in 5.0.15 gefunden; in 5.0.20
>funktioniert das jedenfalls. Außerdem sollte es auch mit 4.1, 4.0
>und sogar 3.23 gehen (im Gegensatz zu Subselects).
>
jetzt in 5.0.20a getestet und es geht auch nichth!



cu stephan

Re: durchnummeriertes Feld in Abfrage einfügen?

am 08.05.2006 18:09:14 von Thomas Rachel

Stephan Menzel wrote:

> Sie dient als rechnungsposition, und muss auch mit gespeichert werden!

Permanent? Dann würde ich ein AUTO_INCREMENT-Feld wählen...


Thomas

Re: durchnummeriertes Feld in Abfrage einfügen?

am 08.05.2006 19:04:07 von Axel Schwenke

Stephan Menzel wrote:

>>1. Die laufende Nummer hat mit den eigentlichen Daten nix zu tun.
>> Mit der gleichen Begründung könntest du auch Zufallszahlen von
>> der Datenbank erzeugen lassen oder nach dem Datum fragen [1].
>>
>>2. Du erzeugst (für die Datenbank) nutzlose Daten auf dem Server.
>> Das verbraucht Ressourcen. Server hat man i.d.R. nur einen,
>> Clients hingegen eher viele. Es ist also besser, das auf dem
>> Client zu machen.

> Sie dient als rechnungsposition, und muss auch mit gespeichert werden!
> Deshalb, finde ich hat es sehr wohl der server zu erzeugen, da dieser
> über eine StoredProcedure die Rechnung auch aufnimmt!

*Das* ist jetzt aber eine ganz andere Aufgabenstellung als die
ursprüngliche. Kann es sein, daß du selber nicht weißt, was du willst?

Selbstverständlich sollte die Rechnungsposition als ganz normales Feld
in einer Datenbanktabelle stehen. Wie sie dahin kommt, ist erstmal egal.


XL

Re: durchnummeriertes Feld in Abfrage einfügen?

am 08.05.2006 19:11:06 von Axel Schwenke

Stephan Menzel wrote:

>>*Eventuell* hast du ja einen Bug in 5.0.15 gefunden; in 5.0.20
>>funktioniert das jedenfalls. Außerdem sollte es auch mit 4.1, 4.0
>>und sogar 3.23 gehen (im Gegensatz zu Subselects).
>>
> jetzt in 5.0.20a getestet und es geht auch nichth!

Dann ist es sicher, daß du was flashc machst und ich ziehe jegliche
ehrenrührige Aussage bzgl. der Qualität von MySQL-5.0.15 zurück ;-)

Falls du Interesse hast, das aufzuklären: wir bräuchten dazu eine
*exakte* Reproduktion (also copy-and-paste) deiner mysql-Session,
inclusive SHOW VARIABLES. Außerdem Angaben über dein Betriebssystem
sowie Version und Herkunft deines MySQL.

Falls du phpMyAdmin oder ähnliches kaputtes G'lump verwendest, kannst
du das natürlich gleich vergessen.


XL

Re: durchnummeriertes Feld in Abfrage einfügen?

am 08.05.2006 21:35:54 von Stephan Menzel

>>>*Eventuell* hast du ja einen Bug in 5.0.15 gefunden; in 5.0.20
>>>funktioniert das jedenfalls. Außerdem sollte es auch mit 4.1, 4.0
>>>und sogar 3.23 gehen (im Gegensatz zu Subselects).
>>>
>> jetzt in 5.0.20a getestet und es geht auch nichth!
>
>Dann ist es sicher, daß du was flashc machst und ich ziehe jegliche
>ehrenrührige Aussage bzgl. der Qualität von MySQL-5.0.15 zurück ;-)
>
>Falls du Interesse hast, das aufzuklären: wir bräuchten dazu eine
>*exakte* Reproduktion (also copy-and-paste) deiner mysql-Session,
>inclusive SHOW VARIABLES. Außerdem Angaben über dein Betriebssystem
>sowie Version und Herkunft deines MySQL.

Da stellt sich für mich die frage, wie mache ich eine exakte kopie
meiner mysql-Session? Als System habe ich win 2000 und mysql habe ich
mir von der MySQL Homepage heruntergeladen!
>
>Falls du phpMyAdmin oder ähnliches kaputtes G'lump verwendest, kannst
>du das natürlich gleich vergessen.

Um mit dem server zu arbeiten, verwende ich den Query Browser oder
MySQL Administrator oder gleich die Shell und arbeite mit source files
oder eben per Hand, wie bei deinen Beispiel!


cu stephan

Re: durchnummeriertes Feld in Abfrage einfügen?

am 08.05.2006 22:16:33 von steinboeck

Axel Schwenke schrieb:
> Falls du phpMyAdmin oder ähnliches kaputtes G'lump verwendest, kannst
> du das natürlich gleich vergessen.

Nicht war! Funkt bestens, mit dem phpadmin, mit einer 4.1.10 Mysql.

Re: durchnummeriertes Feld in Abfrage einf

am 08.05.2006 22:21:03 von Stephan Menzel

Hallo,

>Stephan Menzel wrote:
>
>> Sie dient als rechnungsposition, und muss auch mit gespeichert werden!
>
>Permanent? Dann würde ich ein AUTO_INCREMENT-Feld wählen...
>
Wenn du in meinem Thead bleiben würdest, sieht man deine Antworten
eher! ;)
Die Positionen werden, aus einer liste von artikeln erstellt, die erst
in eine Temporäre Tabelle per StoredProcedure geschrieben werden,
wo sie dann vom FE Überprüft und Bearbeitet werden können, um sie dann
in die Rechnungstabelle einzufügen!!


cu stephan

Re: durchnummeriertes Feld in Abfrage einf

am 08.05.2006 23:24:26 von Thomas Rachel

Stephan Menzel wrote:

>>Permanent? Dann würde ich ein AUTO_INCREMENT-Feld wählen...
>>
> Wenn du in meinem Thead bleiben würdest, sieht man deine Antworten
> eher! ;)

Hm, die References sind vorhanden - das einzige, was anders ist, ist das
Subject, und das auch nur, weil ich vergessen habe, den dank fehlender
Charset-Declaration im Subject bei einem meiner Vorschreiber fehlenden
Umlaut nachzutragen.

Threading über References ist geschickter als über Subject...


> Die Positionen werden, aus einer liste von artikeln erstellt, die erst
> in eine Temporäre Tabelle per StoredProcedure geschrieben werden,
> wo sie dann vom FE Überprüft und Bearbeitet werden können, um sie dann
> in die Rechnungstabelle einzufügen!!
^^ s/!!/!/

ach so. Naja, der Vorschlag bleibt - entweder die temporäre Tabelle oder
besser die Rechnungstabelle mit AUTO_INCREMENT versehen. Dadurch wird
die Numerierung zum spätestmöglichen Zeitpunkt vorgenommen.

Wenn die Daten ohnehin über ein Anwendungsprogramm gehen (die Abkürzung
FE sagt mir in diesem Zusammenhang jetzt leider nix), würde es, wie
erwähnt, auch eine Zählschleife im Programm tun.

Oder ich verstehe Dein Problem völlig falsch...


Thomas
--
"Ich suche ein Paar Schuhe"
"Der Hufschmied ist um die Ecke" (Al Bundy)

Re: durchnummeriertes Feld in Abfrage einf

am 09.05.2006 08:25:17 von Stephan Menzel

Hallo,
>> Die Positionen werden, aus einer liste von artikeln erstellt, die erst
>> in eine Temporäre Tabelle per StoredProcedure geschrieben werden,
>> wo sie dann vom FE Überprüft und Bearbeitet werden können, um sie dann
>> in die Rechnungstabelle einzufügen!!
> ^^ s/!!/!/
>
>ach so. Naja, der Vorschlag bleibt - entweder die temporäre Tabelle oder
>besser die Rechnungstabelle mit AUTO_INCREMENT versehen. Dadurch wird
>die Numerierung zum spätestmöglichen Zeitpunkt vorgenommen.
Das mit dem Auto_Increment hatte ich mir auch schon überlegt, aber da
ich InnoDB verwende, kann ich nicht ein Auto_increment au 2 Spalten
anwenden, so wie es bei MYISAM Tabellen geht!
>
>Wenn die Daten ohnehin über ein Anwendungsprogramm gehen (die Abkürzung
>FE sagt mir in diesem Zusammenhang jetzt leider nix), würde es, wie
>erwähnt, auch eine Zählschleife im Programm tun.
mit FE meinte ich nur das Frontend mit dem die Daten bearbeitet
werden!


cu Stephan

Re: durchnummeriertes Feld in Abfrage einfügen?

am 09.05.2006 09:44:07 von Axel Schwenke

Michael Steinboeck wrote:
> Axel Schwenke schrieb:
>> Falls du phpMyAdmin oder ähnliches kaputtes G'lump verwendest, kannst
>> du das natürlich gleich vergessen.
>
> Nicht wahr! Funkt bestens, mit dem phpadmin, mit einer 4.1.10 Mysql.

OK, ok, nicht hauen :-)


Hintergrund meiner Bemerkung ist, daß Uservariablen in MySQL an die
Session (vulgo: Connection) gebunden sind. Falls das fragliche Tool
die Verbindung zur Datenbank zwischen den Queries abbricht und jedes
Mal wieder neu aufbaut, funktionieren Uservariablen natürlich nicht.
Temporäre Tabellen und Transaktionen übrigens dito.

Bei phpMyAdmin kommt es wohl auf die Verwendung an. Wenn man alle
Statements auf einmal ausführen läßt, wird es gehen. Sonst nicht.
(ich habe phpMyAdmin seit langem nicht mehr anfassen müssen, ich
erinnere mich aber dunkel, daß man da SQL-Statements in ein HTML-
Formular schreiben und ausführen lassen konnte).


XL

Re: durchnummeriertes Feld in Abfrage einfügen?

am 09.05.2006 09:50:47 von Axel Schwenke

Stephan Menzel wrote:

>>Falls du Interesse hast, das aufzuklären: wir bräuchten dazu eine
>>*exakte* Reproduktion (also copy-and-paste) deiner mysql-Session,
>>inclusive SHOW VARIABLES. Außerdem Angaben über dein Betriebssystem
>>sowie Version und Herkunft deines MySQL.
>
> Da stellt sich für mich die frage, wie mache ich eine exakte kopie
> meiner mysql-Session? Als System habe ich win 2000 und mysql habe ich
> mir von der MySQL Homepage heruntergeladen!

Windows, das waren doch die, welche die Maus und Copy-and-paste
erfunden haben, oder?

> Um mit dem server zu arbeiten, verwende ich den Query Browser oder
> MySQL Administrator oder gleich die Shell und arbeite mit source files
> oder eben per Hand, wie bei deinen Beispiel!

Die MySQL "Shell" - besser bekannt als Kommandozeilenclient oder kurz
mysql(.exe) kann ein Session-Protokoll schreiben. Einfach mal \h tippen
und dann lesen. Du suchst \T.


XL

Re: durchnummeriertes Feld in Abfrage einf

am 09.05.2006 10:06:47 von Fabian Schladitz

Stephan Menzel schrieb:
>>>Die Positionen werden, aus einer liste von artikeln erstellt, die erst=

>>>in eine Temporäre Tabelle per StoredProcedure geschrieben werden,
>>>wo sie dann vom FE Überprüft und Bearbeitet werden können, um si=
e dann
>>>in die Rechnungstabelle einzufügen!!
>>
>>ach so. Naja, der Vorschlag bleibt - entweder die temporäre Tabelle o=
der
>>besser die Rechnungstabelle mit AUTO_INCREMENT versehen. Dadurch wird
>>die Numerierung zum spätestmöglichen Zeitpunkt vorgenommen.
>=20
> Das mit dem Auto_Increment hatte ich mir auch schon überlegt, aber da=

> ich InnoDB verwende, kann ich nicht ein Auto_increment au 2 Spalten
> anwenden, so wie es bei MYISAM Tabellen geht!

Du willst also nicht eine laufende Nummer in der Darstellung, sondern=20
eine laufende Nummer innerhalb deiner Daten. Du benötigst zwei solche=20
Spalten? Wozu?

Gehe ich recht in der Annahme, dass es dir letztlich um diese=20
Darstellung geht?

Rechnungsnummer: 12351

1 Montagestunden 5h 300 Euro
2 Steine 100 Stück 1002 Euro
3 ...

Und damit die Reihenfolge immer die selbe ist und du ne Referenz hast,=20
willst du die Nummern 1-3 auch abspeichern, richtig?

Da du ohnehin eine Temporäre Tabelle mit den Positionen anlegst um dies=
e=20
im Frontend noch zu bearbeiten, kannst du doch einfach in dieser Tabelle =

eine Auto Increment Spalte definieren und dann die Daten per INSERT INTO =

.. SELECT in die Rechnungstabelle schieben.


--=20
HTH,
Fabian

Re: durchnummeriertes Feld in Abfrage einfügen?

am 09.05.2006 12:47:50 von Stephan Menzel

Hallo,

>>>Falls du Interesse hast, das aufzuklären: wir bräuchten dazu eine
>>>*exakte* Reproduktion (also copy-and-paste) deiner mysql-Session,
>>>inclusive SHOW VARIABLES. Außerdem Angaben über dein Betriebssystem
>>>sowie Version und Herkunft deines MySQL.
>>
>> Da stellt sich für mich die frage, wie mache ich eine exakte kopie
>> meiner mysql-Session? Als System habe ich win 2000 und mysql habe ich
>> mir von der MySQL Homepage heruntergeladen!
>
>Windows, das waren doch die, welche die Maus und Copy-and-paste
>erfunden haben, oder?
>
>> Um mit dem server zu arbeiten, verwende ich den Query Browser oder
>> MySQL Administrator oder gleich die Shell und arbeite mit source files
>> oder eben per Hand, wie bei deinen Beispiel!
>
>Die MySQL "Shell" - besser bekannt als Kommandozeilenclient oder kurz
>mysql(.exe) kann ein Session-Protokoll schreiben. Einfach mal \h tippen
>und dann lesen. Du suchst \T.

ich komme dann erst am Wochenende dazu, und werde dann das
Sessionprotokoll mit angeben!


cu Stephan