phpbar.de logo

Mailinglisten-Archive

INSERT aber nur wenn es den Datensatz noch nicht gibt

INSERT aber nur wenn es den Datensatz noch nicht gibt

Sebastian Tobias Mendel genannt Mendelsohn lists at sebastianmendel.de
Don Dez 11 13:50:24 CET 2003


Kurt Rene wrote:

> Für ein Review-Tool das ich im Moment schreibe (PHP / MySQL) will ich die
> E-Mail Adressen der Reviewteilnehmer speichern. An einem Review kann eine
> Person in verschiedenen Rollen teilnehmen, z.B. als Reviewleader, Peer, usw.
> Aus diesem Grnd habe ich eine Tabelle mit folgender Struktur kreiert:
> 
> CREATE TABLE rt_emails (
> emailid int(11) NOT NULL auto_increment,
> email varchar(64) NOT NULL default '',
> role varchar(30) NOT NULL default '',
> PRIMARY KEY  (emailid)
> ) TYPE=MyISAM;
> 
> Die Einträge sehen dann so aus:
> 
> 1 | mail1 at domain1.com | leader
> 2 | mail1 at domain1.com ¦ peer
> ..
> 
> Wenn ein neues Review geplant wird, werden bei den Rollen neue E-Mail
> Adressen eingetragen, es können aber auch solche ausgewählt werden die schon
> in der Tabelle gespeichert sind. Beim Speichern eines Reviews sollen die
> E-Mail Adressen die noch nicht vorhanden sind in dieser Tabelle gespeichert
> werden. Und hier stehe ich nun an.
> 
> Muss ich wirklich zuerst schauen ob mir das Select
> 
> SELECT * FROM rt_emails WHERE email=".." AND role=".."
> 
> keinen Datensatz zurückgibt und erst dann kann ich ein Insert machen oder
> sehe ich einfach nicht wie ich es einfacher lösen könnt?

wenn du das Feld `email` UNIQUE machst bekommst du eine Fehlermeldung 
bei einem INSERT mit einer bereits bestehenden mail-adresse

das sparrt dir das vorrige abfragen, musst halt hinterher nur abfragen 
ob der INSERT ergolgreich war, anhand des Rückgabewertes

-- 
Sebastian Mendel (www.sebastianmendel.de)

*www.warzonez.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