php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.02.2009, 15:56  
Benutzer
 
Registriert seit: 24.07.2003
Beiträge: 46
dj-digger
Standard [Erledigt] DELETE und UPDATE gleichzeitig durchführen

Folgendes Problem stellt sich mir.

Ich habe eine Tabelle:

Code:
ID Subj   Nr   Wert
======================
 1 Haus   1    blau
 2 Haus   2    gelb
 3 Haus   3    rot
 4 Baum   1    Buche
 5 Baum   2    Erle
 6 Baum   3    Tanne
 7 Auto   1    Ford
 8 Auto   2    VW
 9 Auto   3    Audi
10 Auto   4    BMW
======================
Je nach Subj wird eine fortlaufende Nr. erstellt, beginnend immer mit 1.

Nun soll der rot markierte Wert gelöscht und die Nummerierung wieder hergestellt werden (beginnend bei 1).

Also
Code:
ID Subj   Nr   Wert
======================
 1 Haus   1    blau
 2 Haus   2    gelb
 3 Haus   3    rot
 4 Baum   1    Buche
 5 Baum   2    Erle
 6 Baum   3    Tanne
 7 Auto   1    Ford
 8 Auto   2    VW
 9 Auto   3    Audi
10 Auto   4    BMW
======================

DELETE FROM TABELLE WHERE ID=9

ID Subj   Nr   Wert
======================
 1 Haus   1    blau
 2 Haus   2    gelb
 3 Haus   3    rot
 4 Baum   1    Buche
 5 Baum   2    Erle
 6 Baum   3    Tanne
 7 Auto   1    Ford
 8 Auto   2    VW
 9 Auto   4    BMW
======================
Da ID der Primary Key mit Auto Increment ist, haut das hin.

Nun soll aber NR auch wieder sortiert werden, damit wie im o.g. Beispielt das Auto BMW die ID 9 und die NR 3 hat.

Habt ihr eine Idee?
dj-digger ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.02.2009, 16:15  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Sorry, aber das ist bullshit. Niemand reindexiert Primärschlüssel. Das ist schon von der Definition her Unsinn.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 11.02.2009, 16:27  
Benutzer
 
Registriert seit: 24.07.2003
Beiträge: 46
dj-digger
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Sorry, aber das ist bullshit. Niemand reindexiert Primärschlüssel. Das ist schon von der Definition her Unsinn.
Ist dem nicht so. Sorry mein Fehler. Ich bin auf dem Gebiet noch relativ neu. Also behält der BMW die 10? Soll mir recht sein. Wichtig ist mir das er die Nr. 3 bekommt. Wie bekomme ich das hin.
dj-digger ist offline   Mit Zitat antworten
Alt 11.02.2009, 16:29  
Benutzer
 
Registriert seit: 09.01.2009
Beiträge: 65
mohi befindet sich auf einem aufstrebenden Ast
Standard

Alle forlaufenden nach Audi sollen einen runtergecountet werden?
update tabelle set nr=nr-1 where id>audiid
mohi ist offline   Mit Zitat antworten
Alt 11.02.2009, 16:41  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Nein mohi, nicht solche Tipps geben. Primärschlüssel ändert man nicht!

Zitat:
Wichtig ist mir das er die Nr. 3 bekommt. Wie bekomme ich das hin.
Lass mal was blicken über den Zusammenhang der Tabellen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 11.02.2009, 16:44  
Benutzer
 
Registriert seit: 09.01.2009
Beiträge: 65
mohi befindet sich auf einem aufstrebenden Ast
Standard

NR ist aber doch nur die "Sortierungsnummer"?! Die kann er doch ganz nach belieben anpassen, die id wird generell nie angefasst
mohi ist offline   Mit Zitat antworten
Alt 11.02.2009, 16:47  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ach so, Entschuldigung. Falsch gelesen. Nichts für ungut.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 11.02.2009, 17:27  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

IMHO brauchst Du das update gar nicht beim delete. Die Sortierung wird ja nicht geändert.
Ausser Du hast irgendwo eine Funktion, die eine durchgehende nummerireung erfordert, was aber nicht gerade prickelnd wäre....
HPR1974 ist offline   Mit Zitat antworten
Alt 11.02.2009, 17:34  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ja, das wäre jetzt auch meine Argumentation. Zumal nr=nr-1 auch nur funktioniert, wenn
- genau ein Datensatz gelöscht wurde.
- der Vorgängerdatensatz bekannt ist.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 12.02.2009, 07:56  
Benutzer
 
Registriert seit: 24.07.2003
Beiträge: 46
dj-digger
Standard

Zitat:
Zitat von mohi
Alle forlaufenden nach Audi sollen einen runtergecountet werden?
update tabelle set nr=nr-1 where id>audiid
Ja Richtig, Danke mohi, genau das hab ich gesucht. Das klappt.


Zitat:
Zitat von nikosch
Lass mal was blicken über den Zusammenhang der Tabellen.
Kann ich leider nicht, da es ein Intranetprojekt ist.


Zitat:
Zitat von nikosch
Ja, das wäre jetzt auch meine Argumentation. Zumal nr=nr-1 auch nur funktioniert, wenn
- genau ein Datensatz gelöscht wurde.
- der Vorgängerdatensatz bekannt ist.
Es wird immer nur genau 1 Datensatz gelöscht und der Vorgänger ist bekannt.

Thema erledigt. Danke für eure Hilfe!
dj-digger ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] SQL Update Problem HILFE!!! :-) SilferSurver PHP Tipps 2008 6 29.11.2008 15:50
[Erledigt] Zwei MySQL Abfragen gleichzeitig durchführen djscaleo Datenbanken 10 21.11.2008 20:52
Update / syntaxfehler prinzli Datenbanken 7 24.11.2007 21:24
SELECT und UPDATE gleichzeitig ?? madSoul Datenbanken 15 22.09.2006 12:12
... ON DELETE und ... ON UPDATE DirkHo Datenbanken 2 23.05.2006 18:59
zwei SQL-Befehle (SELECT UND UPDATE) auf einmal vollziehen. Datenbanken 3 09.03.2006 16:34
[Erledigt] Fehlermeldung bei update und delete oder nicht? (Teil2) Datenbanken 1 25.01.2006 13:36
Fehlermeldung bei update und delete oder nicht? Datenbanken 2 25.01.2006 10:46
UPDATE count nach Link Aufruf ? PHP Tipps 2006 9 22.01.2006 14:53
Mehrere Aufgaben gleichzeitig durchführen. PHP-Fortgeschrittene 6 11.09.2005 22:57
php / Mysql Update auf neuste Version PHP Tipps 2007 5 05.01.2005 19:34
Update per Cronjob (where Feld = Wort) Apfeltyp PHP Tipps 2004-2 3 14.12.2004 18:25
[Erledigt] UPDATE mit ' im Text Datenbanken 2 09.11.2004 20:07
[Erledigt] UPDATE = NO Update aber kein fehler..dringend hilfe suchend Datenbanken 2 25.09.2004 16:28
php update PHP Tipps 2004 2 24.09.2004 01:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql delete und update gleichzeitig, sql update id gleichzeitig, datenbank delete update gleichzeitig, mysql delete update gleichzeitig, 6 mysql update gleichzeitig, \datensatz gelöscht\, php delete id aktualisieren, mysql feld select und delete gleichzeitig, mehrere update gleichzeitig, delete id=10

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum