phpbar.de logo

Mailinglisten-Archive

Verwendung von replace

Verwendung von replace

Cybot 4t2.com-mysql at tekkno4u.de
Die Jul 15 16:45:18 CEST 2003


> Dann lies mal auch weiter...

ich habe ALLES gelesen! und das sogar auf der englischen seite ( weil 
meißt aktueller)

> REPLACE funktioniert genau wie INSERT, ausser dass der alte Datensatz 
> gelöscht wird, bevor ein neuer eingefügt wird, wenn ein alter 
> Datensatz in der Tabelle denselben Wert wie der neue auf einem 
> eindeutigen Index hat.
> 
> Nun, was wollen uns diese Worte sagen?
> Da ist von einem eindeutigen Index die Rede, ist keiner gesetzt wird 
> nix ersetzt...

den index hat er ja wohl wie er schreibt:
"Spalte 1: id mit PrimaryKey und autoincrement Typ Integer"

also passt das so weit, oder?

> Weiter unten:
> 
> Beachten Sie, dass REPLACE keine Informationen der Reihe speichert. 
> Es funktioniert genau wie eine DELETE und eine INSERT Query. Wenn Sie 
> demnach ein "REPLACE INTO table (col1,
> col2) VALUES (val1, val2)" ausführen, wobei col1 den Index hat, 
> werden alle anderen Werte gelöscht. Es ist kein Ersatz für UPDATE 
> oder INSERT...
> 
> Wenn du jetzt ein Replace über ein AUTOINCREMENT - Feld veranlasst, 
> wird dieses Feld !!! NICHT !!! mit einem neuen Wert belegt, sondern 
> es wird der alte Wert beibehalten. Wen du diesen ändern willst, 
> bleibt dir nur ein DELETE mit anschliessenden INSERT...

ja und wo ist da nun dein problem? das widerspricht doch in keinster 
weiße meiner aussage noch belegt dies das das query falsch wäre, oder?

für dich nochmal langsam:

ausgangslage:

CREATE TABLE `t1` (
   `id` int(11) NOT NULL auto_increment,
   `data1` int(11) NOT NULL default '0',
   `data2` varchar(10) NOT NULL default '',
   PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

INSERT INTO `t1` VALUES (1, 1, 'eins');
INSERT INTO `t1` VALUES (2, 2, 'zwei');

auf diese tabbele nun folgendes sql:

REPLACE INTO `t1`
SET id = 1,
data1 = 3,
data2 = 'drei'

ist erfolgreich, also ES FUNKTIONIERT!!

vorher:

id | data1 | data2
-------------------
1  | 1     | eins
2  | 2     | zwei

hinterher:

id | data1 | data2
-------------------
1  | 3     | drei
2  | 2     | zwei

was ist nun falsch an meinen aussagen??
und was willst du mir überhaupt sagen?

> Es ist mir aber immer noch ein Rätsel was du überhaupt bezwecken 
> willst?

was ich bezwecken will?  ich will gar nix bezwecken, war ja auch nicht 
meine frage!! sondern vom Stephan Kraus

zu guter letzt komme ich also (zum dritten mal heut) zu dem schluss das 
sein query grundsätzlich stimmt, wahrschenlich ist ein spalten-name 
falsch oder ein tipp-fehler vorhanden!

aber ich finds gut das wir jetzt in sinnlosen mails diskutiert haben was 
schon die ganze zeit klar war... wenn man ordentlich lesen würde!


trotzdem (oder gerade deswegen) liebe grüße :-)

-- 
Sebastian Mendel

www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive