ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
851
851
EMPFEHLEN
-
Hallo Leute,
das Thema hat zwar einen Bart aber ich habe nicht das Richtige im Forum gefunden.
Ich möchte einen Datensatz nur hinzufügen, wenn dieser noch nicht vorhanden ist. Dabei kann ich aber nicht eine Spalte als UNIQUE setzen, da erst 2 Spalten zusammen nicht noch einmal vorkommen dürfen.
Daher bringt mir INSERT ... ON DUPLICATE KEY UPDATE ja nichts oder? Obwohl ich ja auch kein Update möchte.
Da ich mit PHP arbeite, kann ich es auch einfach in 2 Schritten ausführen, doch schließlich möchte ich meinen Wissensstand ja erweitern.
Mein erster Versuch mit WHERE NOT IN
Fehler:Code sql:1 2 3 4 5 6 7 8 9 10
INSERT INTO USER (user_firstname, user_familyname) SELECT '{$_POST['firstname']}', '{$_POST['familyname']}' WHERE user_firstname NOT IN (SELECT user_firstname FROM USER WHERE user_familyname = '{$_POST['familyname']}')
Da yaslaw mir mal sagte, das Subquerys innerhalb von WHERE-Bedingungen schnell einmal Fehler aufwerfen, mein 2. Versuch:1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE user_firstname NOT IN (SELECT ' at line 6
Fehler:Code sql:1 2 3 4 5 6 7 8 9 10 11
IF NOT EXISTS (SELECT user_firstname, user_familyname FROM USER WHERE user_familyname = '{$_POST['familyname']}' AND user_firstname = '{$_POST['firstname']}') INSERT INTO USER (user_firstname, user_familyname) VALUES({$_POST['firstname']}', '{$_POST['familyname']}')
Hat jemand einen Tipp für mich?1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS (SELECT user_firstname, ' at line 1Gruß Steusi
Sollte dir ein Tipp von mir geholfen haben, freue ich mich auch über eine kleine Bewertung.
Und wenn ein Problem gelöst ist, markiere deinen Beitrag bitte als erledigt.
PHP-Code:$fehler = "dummer Tippfehler";
echo("Und ist das Programm noch so klein, es passt immer noch ein ".$fehler". rein!");
-
Setz den Primary-Key über beide Felder. Das sollte gehen.
Ich denke, es sollte auch mit einem UNIQUE-KEY funktionierne
Code sql:1 2 3 4 5
ALTER TABLE mytable ADD PRIMARY KEY (feld1, feld2); --oder ALTER TABLE mytable ADD UNIQUE INDEX myIndex (feld1, feld2)
Dann kansst du mit INSERT IGNORE arbeitenGeändert von Yaslaw (03.11.10 um 11:06 Uhr)
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Wunderbar, auf jeden Fall eine elegantere Lösung, Danke
Gruß Steusi
Sollte dir ein Tipp von mir geholfen haben, freue ich mich auch über eine kleine Bewertung.
Und wenn ein Problem gelöst ist, markiere deinen Beitrag bitte als erledigt.
PHP-Code:$fehler = "dummer Tippfehler";
echo("Und ist das Programm noch so klein, es passt immer noch ein ".$fehler". rein!");
Ähnliche Themen
-
Datensatz löschen, wenn in einer anderen Tabelle nicht vorhanden
Von port29 im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 15.08.10, 03:16 -
INSERT aber nur wenn Datensatz noch nicht vorhanden ist.
Von mafin im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 17.12.08, 10:41 -
Hibernate: Objekt nur persistieren, wenn Datensatz noch nicht vorhanden?
Von DarthShader im Forum JavaAntworten: 3Letzter Beitrag: 22.10.07, 08:31 -
Hinweis wenn kein Datensatz vorhanden
Von redwing78 im Forum ASPAntworten: 7Letzter Beitrag: 10.08.05, 07:52 -
Wenn eintrag "nicht" vorhanden, neu eintragen! Sonst update
Von Sebigf im Forum Relationale DatenbanksystemeAntworten: 5Letzter Beitrag: 10.06.05, 13:10





Zitieren

Login





