Insert Where Not Extists?

unrealzero_php

Erfahrenes Mitglied
Hallo zusammen

Für jeden Benutzer möchte ich einen Datenbankeintrag erstellen wenn ein solcher noch nicht erstellt wurde. Was mache ich falsch?

Code:
INSERT INTO tbl_user_profile (FK_user,status) VALUES ('username','1')
WHERE NOT EXISTS
SELECT id
  FROM tbl_user_profile WHERE tbl_user_profile.FK_user =1
 
Hi,

in welchem DBMS kann ein INSERT-Statement denn eine WHERE-Klausel haben? Und eine IF EXISTS/NOT EXISTS kenne ich jetzt auch nur beim Anlegen/Löschen von Datenbanken, Tabellen und dergleichen...
Wenn Du von MySQL redest, schaust Du am besten mal in die Dokumentation zu INSERT.

LG
 
Hi unrealzero
da gibt es zwei Möglichkeiten:
Entweder du machst FK_user + status zusammen zu einem Unique Key und benutzt dann INSERT ... ON DUPLICATE KEY UPDATE.

Oder du schreibst deine Abfrage in etwa so:
SQL:
INSERT INTO tbl_user_profile (FK_user,status) 
SELECT u.id, 1 FROM tbl_user as u
left join tbl_user_profile as up on u.id=up.fk_user
WHERE up.id is null;

Gruss
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück