Achot: Prüfen ob ein Produkt bereits in der MySQL Tabelle existiert

Beitrag lesen

Hallo,

Wie schon vermutet, du hast zwei unabhängige Keys für die Felder userid und artikelid, du brauchst einen Key für beide. Anlegen kannst du den entweder über phpMyAdmin oder direkt über den Query

ALTER TABLEADD UNIQUE KEY keyname (userid,artikelid)

(keyname kannst du selbst vergeben).

Ok, ich habe die Tabelle nochmals neu angelegt und dein SQL Befehl ausgeführt. Jetzt sieht es so aus

--
-- Tabellenstruktur für Tabelle `artikel_merken_temporaer`
--

CREATE TABLE `artikel_merken_temporaer` (
  `id` int(11) NOT NULL,
  `userid` int(100) NOT NULL,
  `artikelid` int(100) NOT NULL,
  `menge` int(10) NOT NULL,
  `datum` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Indizes der exportierten Tabellen
--

--
-- Indizes für die Tabelle `artikel_merken_temporaer`
--
ALTER TABLE `artikel_merken_temporaer`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `artikelMerken` (`userid`,`artikelid`);

--
-- AUTO_INCREMENT für exportierte Tabellen
--

--
-- AUTO_INCREMENT für Tabelle `artikel_merken_temporaer`
--
ALTER TABLE `artikel_merken_temporaer`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

Was hat dieser keyname zu bedeuten? Ich habe ihn jetzt einfach mal artikelMerken genannt.

Außerdem: es hat zwar nichts mit dem Problem zu tun aber warum sind die Felder userid, artikelid und menge vom Type varchar und nicht ein int-Typ? Und warum ist das Feld datum nicht vom Typ DATE (oder DATETIME wenn noch eine Zeit mit drinsteht)?

Habe ich ebenfalls verbessert. Wollte erst einmal schauen ob es funktioniert.