UPDATE wenn Eintrag vorhanden, INSERT wenn noch nicht!

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
mristau2k5
Mitglied
Beiträge: 140
Registriert: 10.05.2005 02:35
Wohnort: Filderstadt

UPDATE wenn Eintrag vorhanden, INSERT wenn noch nicht!

Beitrag von mristau2k5 »

Ich suche eine Möglichkeit in einem PHP-Projekt in einer mySQL-Datenbank Datensätze anlegen zu lassen, wenn diese noch nicht vorhanden sind, anderenfalls zu UPDATEN. Die Datensätze sind mit Jahr und Monat eindeutig beschreibbar, dazu kommt noch ein Inhalt. Da das Script Interaktiv ist und für einige Jahre gelten soll, ist es nicht praktikabel die Datensätze gleich bei der Installation anzulegen, sondern immer nur, wenn wirklich Daten eingesetzt werden.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Dafür gibt es bei MySQL die Syntax REPLACE INTO (http://dev.mysql.com/doc/refman/4.1/en/replace.html) oder INSERT ... ON DUPLICATE KEY UPDATE (http://dev.mysql.com/doc/refman/4.1/en/insert.html).
KB:knigge
mristau2k5
Mitglied
Beiträge: 140
Registriert: 10.05.2005 02:35
Wohnort: Filderstadt

Beitrag von mristau2k5 »

wow, danke für die schnelle Hilfe, ich werde das gleich mal antesten

Also ich hab da grad noch ein kleines Problemchen entdeckt, ich hab die Daten ja über Jahr und Monat beschrieben und keinen PRIMARY KEY in der Tabelle, also funktionieren die Befehle nicht direkt.
Ich hab noch nie mit mehrfachen PRIMARY KEYS für eine Tabelle gearbeitet, aber gelesen, dass es geht, könnte mir da vllt jemand helfen?

Code: Alles auswählen

$create_sql = "CREATE TABLE " . TBL_BELEG_PLAN . " (year INT(4) NOT NULL, month INT(2) NOT NULL, checkboxes INT NOT NULL)";
das ist der bisherige Code zum erstellen der Tabelle, könnte man den auf 2 UNIQUE IDs umschreiben
Antworten

Zurück zu „Coding & Technik“