mysql: REPLACE
Nuke
- datenbank
Ich habe eine Sessionverwaltung die SessionID's erstellt und bereits vorhandene überschreibt, wenn die letzte Session nicht mit "Log Out" beendet wurde.
Dazu nutze ich folgendes Statement:
REPLACE INTO sessions (id, name, datum) VALUES ('$sessionid', '$user', NOW()
Hier die Datenbankstruktur:
CREATE TABLE sessions (
id varchar(50) NOT NULL default '',
name varchar(50) NOT NULL default '',
datum timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY user (name, id)
)
Ich möchte nun vermeiden, dass "name" zweimal vorkommt. WENN er vorkommt, soll der alte gelöscht und durch den neuen ersetzt werden.
Leider legt er den neuen trotz UNIQUE KEY für "name" an. Hat jemand eine Idee?
yo,
Leider legt er den neuen trotz UNIQUE KEY für "name" an. Hat jemand eine Idee?
der unique key kiegt über die spalten name UND id, was ihn ziemlich nutzlos macht, da er nicht für jeden spalte einen unique key anlegt, sondern einen aus beiden spalten bildet. deswegen betrachtet er niemals den name alleine und legt einen neuen datensatz an, obwohl der name gleich ist.
Ilja
Ah das war eine schlaue Antwort :-) Vielen Dank und ein schönes Wochenende wünsche ich Dir!