SQL Duplicate entry '1' for key 'PRIMARY'

sLgFiRE

Lieutenant
Registriert
März 2013
Beiträge
855
Guten Tag Leute,

bin zurzeit dabei, mein DOTLAN Intranet upzugraden.
Jetzt wollte ich meine Datenbank auf das Intranet wieder importieren und dann kommt der fehler:
ERROR 1062 (23000) at line 53: Duplicate entry '1' for key 'PRIMARY'

Hab schon gegooglet aber nichts hilfreiches gefunden irgendwie.


Zeile 29 ist die besagte line 53:
Code:
--
-- Tabellenstruktur für Tabelle `article`
--

CREATE TABLE IF NOT EXISTS `article` (
`id` int(11) NOT NULL,
  `section_id` int(11) NOT NULL DEFAULT '0',
  `dateline` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `user_id` int(11) NOT NULL DEFAULT '0',
  `generator_id` int(11) NOT NULL DEFAULT '0',
  `display_teamname` int(11) NOT NULL DEFAULT '0',
  `title` varchar(255) DEFAULT NULL,
  `content` longtext,
  `encode` int(1) NOT NULL DEFAULT '0',
  `readonly` int(1) NOT NULL DEFAULT '0',
  `active` int(1) NOT NULL DEFAULT '1',
  `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `edituser` int(11) NOT NULL DEFAULT '0',
  `count_read` int(11) NOT NULL DEFAULT '1',
  `allow_comments` int(1) NOT NULL DEFAULT '0',
  `comments` int(11) NOT NULL DEFAULT '0',
  `intern` text
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 PACK_KEYS=1;

--
-- Daten für Tabelle `article`
--

INSERT INTO `article` (`id`, `section_id`, `dateline`, `user_id`, `generator_id`, `display_teamname`, `title`, `content`, `encode`, `readonly`, `active`, `edited`, `edituser`, `count_read`, `allow_comments`, `comments`, `intern`) VALUES

aber was is daran falsch?

hoffe mir kann einer helfen.
 
Zuletzt bearbeitet:
Möglichkeiten:
- Die Tabelle existiert schon, hat bereits Inhalt und einen PK definiert
- Dein obiger Auszug ist mehr als unvollständig, deklariert weiter unten einen PK und hat irgendwo 2 (oder mehr) Inserts, bei denen der PK doppelt vor kommt
 
Sehe ich auch so, da gibts PKs mit dem gleichen Wert.
 
Du hast zwei Datensätze, beide mit der id "1". Aber jede id Nummer darf nur einmal vorkommen. Es ist nicht der insert, nicht die Tabellendefinition, sondern deine Daten die das Problem sind.
 
Vielleicht machst Du vor dem Import noch ein TRUNCATE TABLE oder DELETE TABLE um ganz sicher zu sein dass da nix mehr ist.
 
wie mach ich das bei Debain über die commandline?
 
Erst über mysql mit der DB verbinden (mysql -u username -ppasswort), danach ein USE datenbankname ausführen und ein TRUNCATE tabellenname; absetzen. Oder du schreibst einfach nach der CREATE TABLE-Anweisung ein TRUNCATE tabellenname; mit in den Dump, dann wird das automatisch gemacht. Praktisch ist aber ein
Code:
DROP TABLE IF EXISTS `article`;
CREATE TABLE `article` (
einfacher. So sind Tabelle und Daten weg und werden komplett neu erstellt und importiert.
 
Okay, das kommt auch noch bei anderen so vor. kann ich auf die komplette Datenbank leeren?
Ergänzung ()

So, das mit der Datenbank imporiteren hat funktioniert jetzt soweit :D

alle Umlaute sind auch da, nur die Passwörter sind jetzt irgendwie zerschossen.
An was kann das liegen?
 
Evtl. verwendet die Anwendung einen zufallsgenerierten Salt pro Installation. Wenn der natürlich anders ist, als bei der alten Installation funktionieren die Passwörter nicht mehr.

Gibts keinen Migration-Guide für die Anwendung?
 
Wahrscheinlich wird in der neuen Version eine andere Hash-Funktion verwendet. Da die alte Version (laut Datenbank, s.o.) md5 verwendet hat, gehen diese Werte nun nicht mehr.
Am besten ist es wenn jeder User sein Passwort zuruecksetzt.
 
Okay, musste in der config md5 einstellen.
Migration-Guide gibt es, bin da momentan dran die Passwörter zu konvertieren.

also muss immer wenn ich eine aktuelle Datenbank einspielen will die alte komplett löschen und neu anlegen. dann klappt auch der Import.

Danke leute! kann geclosed werden.
 
Zurück
Oben