SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 08.08.2010, 20:50:35
Leyyin Leyyin ist offline
Anfänger
 
Registriert seit: May 2010
Alter: 44
Beiträge: 67
REPLACE anstatt INSERT oder UPDATE?

Hallo ihr lieben,

ich kann mich nicht entscheiden, welche von den folgenden Varianten beim Datenmanipulation besser ist:
  1. INSERT oder UPDATE
  2. Nur REPLACE
  3. Nur INSERT ... ON DUPLICATE KEY UPDATE

z.B. habe ich eine Tabelle namens "person":
person(id, vorname, nachname, email, beruf)
In dieser Tabelle sind zwei Spalten als unique-index definiert: id (PRIMARY KEY, AUTO INCREMENT) und email...

Wenn ich Daten für eine Person in DB einfügen möchte soll das skript zuerst prüfen, ob die gegebene email-Adresse schon in DB existiert und dann wie folgt behandeln:
  1. Falls diese email in DB nicht existiert -> INSERT INTO
  2. Andernfalls -> UPDATE

In MySQL-Referenzbuch steht so:
"Generell sollten Sie von der Verwendung einer ON DUPLICATE KEY-Klausel bei Tabellen mit mehreren eindeutigen Indizes absehen. "
In diesem Fall wird die 3. Wahrscheinlichkeit automatisch disqualifiziert.
Wir kommen nun zu anderen beiden:

Ich kann UPDATE nur dann benutzen, wenn eine Zeile existiert aber REPLACE auch dann, wenn die Zeile noch nicht angelegt wurde (in diesem Fall übergeht MySQL einfach den Löschvorgang und behandelt wie ein INSERT INTO). Ist es dann nicht sinvoll, dass ich anstatt obige Prüfung einfach nur REPLACE verwende? Auf dieser Weise habe ich nur eine Query statt zwei.
Übrigens kann ich dieselbe Query auch beim "Profil bearbeiten" benutzen. Zwie Fliegen mit einer Klappe schlagen. Nicht schlecht...

Was meint ihr? Ist mein Ansatz richtig?
Mit Zitat antworten
  #2  
Alt 09.08.2010, 09:28:27
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: REPLACE anstatt INSERT oder UPDATE?

gegen REPLACE spricht imho das hier:

Zitat:
REPLACE ist eine MySQL-Erweiterung zum SQL-Standard.
quelle: 13.2.6. REPLACE

Zitat:
Zitat von Leyyin Beitrag anzeigen
Übrigens kann ich dieselbe Query auch beim "Profil bearbeiten" benutzen. Zwie Fliegen mit einer Klappe schlagen. Nicht schlecht...
einen vorhandenen datensatz bearbeiten oder einen neuen datensatz anlegen, sind 2 völlig unterschiedliche operationen, die du innerhalb deiner anwendungslogik auch so behandeln solltest.

cx
Mit Zitat antworten
  #3  
Alt 09.08.2010, 18:02:40
Leyyin Leyyin ist offline
Anfänger
 
Registriert seit: May 2010
Alter: 44
Beiträge: 67
AW: REPLACE anstatt INSERT oder UPDATE?

Zitat:
Zitat von cortex Beitrag anzeigen
gegen REPLACE spricht imho das hier...
Heißt das etwa, dass man REPLACE möglichst vermeiden soll?
Mit Zitat antworten
  #4  
Alt 09.08.2010, 18:39:01
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: REPLACE anstatt INSERT oder UPDATE?

Zitat:
Zitat von Leyyin Beitrag anzeigen
Heißt das etwa, dass man REPLACE möglichst vermeiden soll?
gegenfrage: kannst du dich darauf verlassen / davon ausgehen, dass das model stets auf ein ganz bestimmtes dbms (in diesem fall mysql) zurück greift?

cx
Mit Zitat antworten
  #5  
Alt 09.08.2010, 18:42:55
Leyyin Leyyin ist offline
Anfänger
 
Registriert seit: May 2010
Alter: 44
Beiträge: 67
AW: REPLACE anstatt INSERT oder UPDATE?

In meinem Fall ja...
Mit Zitat antworten
  #6  
Alt 09.08.2010, 20:09:38
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: REPLACE anstatt INSERT oder UPDATE?

na dann...

PostgreSQL kennt REPLACE übrigens nicht.

cx
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
insert into on duplicate key update Loki555 MySQLi/PDO/(MySQL) 1 23.09.2009 10:22:02
Problem!! In XAMPP eine Datenbank importieren erniedd MySQLi/PDO/(MySQL) 2 31.03.2009 15:24:26
"Verschachtelte" Selects über 3 Tabellen Mattes1001 MySQLi/PDO/(MySQL) 6 09.06.2008 16:22:46
MySQL - erst INSERT dann UPDATE reinhardlange MySQLi/PDO/(MySQL) 0 26.04.2008 10:13:18
Leeres Resultat? Sk3y MySQLi/PDO/(MySQL) 10 13.11.2006 18:57:40


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:30:01 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt