sql datenbankausgabe auf letzte eingabe limitieren

Gast #1558893
Lesenswert?

>Aber das gibt doch nur den ersten Eintrag aus, oder ?

Ja, den 1. Eintrag der Tabelle die nach dem Primärschlüssel rückwärts 
sortiert (ORDER BY ... DESC) wurde.
Ergo steht der letzte Eintrag oben. Genau den wolltest du doch,
oder habe ich etwas falsch verstanden?
OP (Firma: privat) #1558894
Lesenswert?

Tim schrieb:
>>Aber das gibt doch nur den ersten Eintrag aus, oder ?
>
> Ja, den 1. Eintrag der Tabelle die nach dem Primärschlüssel *rückwärts*
> sortiert (ORDER BY ... DESC) wurde.
> Ergo steht der letzte Eintrag oben. Genau den wolltest du doch,
> oder habe ich etwas falsch verstanden?

Stimmt, hatte ich dann wohl falsch verstanden, also kam der Tipp mit 
Select * und so weiter Desk limit 1; von Dir - ja ?
OP (Firma: privat) #1558897
Lesenswert?

Tim schrieb:
> ja, "SELECT * FROM tbl ORDER BY primärschlüssel DESC LIMIT 1;"
> hatte ich vorgeschlagen und weiter?
>
> ggf gibt es ja bei deiner Datenbank noch schneller möglichkeiten.
> Also Dokumentation lesen...

Nun, ich wollte mich nur dafür bedanken, da der Code funktioniert - habe 
ihn nun schon auf nem anderen externen Server abgesichert, um ihn nicht 
auch wieder zu verliehren - Danke !
#1558982
Lesenswert?

das ganze ist trotzdem mit Vorsicht zu genießen.
wenn mehrere auf die Datenbank zugreifen (dafür sind sie ja schließlich 
da) kann es natürlich sein, dass der letzte Datensatz nicht der ist, den 
du zu finden erwartest.

hierfür muss das insert und das select teil einer transaktion sein.
OP (Firma: privat) #1559003
Lesenswert?

Vlad Tepesch schrieb:
> das ganze ist trotzdem mit Vorsicht zu genießen.
> wenn mehrere auf die Datenbank zugreifen (dafür sind sie ja schließlich
> da) kann es natürlich sein, dass der letzte Datensatz nicht der ist, den
> du zu finden erwartest.
>
> hierfür muss das insert und das select teil einer transaktion sein.

sorry, aber das verstehe ich nun überhaupt nicht.
#1559432
Lesenswert?

die Sache mit dem PK hat aber einen Haken. Denn die Reihenfolge des PK's 
muß schließlich nicht mit der Reihenfolge der Eingaben zusammenhängen 
(je nachdem, was verantwortlich für das Auffüllen des PK ist).
Ich würde sowas evtl. mit einer Zusatzspalte machen, die automatisch mit 
jedem Insert einen höheren Wert bekommt, z.B. autoincrement, oder aber 
current Timestamp, den man als Default eintragen läßt, so daß man sogar 
weiß, wann was eingetragen wurde (weis nicht, ob das deine DB kennt). 
Das von Läubi angegebene last_insertid() kenne ich dagegen nicht - kenne 
mich mit SQL Server nicht weiter aus.
OP (Firma: privat) #1559436
Lesenswert?

Jens G. schrieb:
> die Sache mit dem PK hat aber einen Haken. Denn die Reihenfolge des PK's
> muß schließlich nicht mit der Reihenfolge der Eingaben zusammenhängen
> (je nachdem, was verantwortlich für das Auffüllen des PK ist).
> Ich würde sowas evtl. mit einer Zusatzspalte machen, die automatisch mit
> jedem Insert einen höheren Wert bekommt, z.B. autoincrement, oder aber
> current Timestamp, den man als Default eintragen läßt, so daß man sogar
> weiß, wann was eingetragen wurde (weis nicht, ob das deine DB kennt).
> Das von Läubi angegebene last_insertid() kenne ich dagegen nicht - kenne
> mich mit SQL Server nicht weiter aus.

Das läuft auf autoincrement ID
Persönliche Seite #1559702
Lesenswert?

Nein die Last Insert ID hat den Wert des letzten Inserts dieser kann 
aber ungleich dem aktuellem autoincrement sein...

Siehe: http://dev.mysql.com/doc/refman/5.1/de/information-functions.html

Wenn ich also den Wert für die auto_increment spalte (welche 
optimlaerweise  auch der Primary key ist) vorgebe hat es auch diesen 
Wert, wurde der Wert automatisch vergeben hat er eben jenen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren