2013-08-02 12 views
7

Mam tu pełną stratę. Mam dwie bazy danych. Jedna na mojej witrynie localhost, której używam do programowania, a druga na mojej witrynie zdalnej, której używam do mojej witryny na żywo (produkcyjnej). Zarządzam nimi przez phpMyadmin. Tak jak robię to od miesięcy, kiedy potrzebuję zaktualizować stronę na żywo, zrzucam powiązaną bazę danych i importuję bazę danych z mojej strony localhost.# 1062 - Zduplikowany wpis "1" dla klucza "PODSTAWOWY"

Teraz, bez względu na to, co próbuję, wciąż otrzymuję ten błąd:

Błąd zapytania SQL:

-- 
-- Dumping data for table `oc_address_type` 
-- 
INSERT INTO `oc_address_type` ( `address_type_id` , `address_type_name`) 
VALUES (1, 'Billing') , (2, 'Shipping') ; 

MySQL powiedział: Dokumentacja

#1062 - Duplicate entry '1' for key 'PRIMARY'

próbowałem tworząc nowy puste bazy danych na moim localhost i importowanie do tego, ale same wyniki. Sprawdziłem wszystkie tabele i indeksy i nie mogę znaleźć tam niczego niewłaściwego.

Wszelkie sugestie proszę jak jestem całkowicie w dół, aż ten zostanie rozwiązany.

Nawiasem mówiąc, jestem całkowicie upuszczenie wszystkie tabele i importowanie struktury i danych. To zawsze działało do dziś.

+0

Aby sformatować kod jako kod, należy poprzedzać każdą linię czterema spacjami. – Artemix

Odpowiedz

4

trzeba zrzucić ze sprawozdaniem upuść. Tabela istnieje i ma już dane, a Ty próbujesz wstawić więcej, co jest identyczne. Nie jestem w 100% pewny na phpmyadmin, ale zrzuty będą miały opcję dodawania instrukcji "upuść tabelę"

+0

Cóż, kolejny nowy numer. Zaczynam myśleć, że moja instalacja mysql uległa uszkodzeniu. Sprawdziłem dwukrotnie, czy rzeczywiście zrzucam istniejące dane i zrzucam tabele, ale jak już wspomniałem wcześniej, starałem się zaimportować do zupełnie nowego DB bez skutku. Spróbowałem jeszcze raz i wydawało się, że zadziałało. Nie otrzymałem komunikatu o błędzie, ale kiedy wszedłem do nowej bazy danych, nie zawierałem w niej tabel. – user2646528

+0

Właściwie upuściłem i ponownie utworzyłem tabele i nadal widzę ten błąd. –

+0

Miałem ten problem i podczas eksportowania sql kliknij "niestandardowe", scoll dół i kliknij Dodaj instrukcji DROP TABLE/TRIGGER. To działało dla mnie. – gavin

3

Problem jest związany z plikiem - próbujesz utworzyć bazę danych za pomocą kopii - na górze pliku znajdziesz coś takiego:

TWORZENIE BAZY DANYCH, JEŚLI NIE ISTNIEJE * THE_NAME_OF_YOUR_DB * DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci; UŻYJ * THE_NAME_OF_YOUR_DB *;

i jestem pewien, że masz już DB o tej nazwie - W tym samym serwerze - proszę sprawdzić, ponieważ staramy się zastąpić !! Po prostu zmień nazwę LUB (lepiej) USUŃ TĘ LINĘ!

+0

+1 za komentarz. To zadziałało dla mnie. Dostałem bazę danych od innej osoby, więc nie wyeksportowałem jej samodzielnie, ale nie działałem. Kiedy skomentowałem tę linię, zadziałało. – rashidkhan

5

Zrzut bazy danych na localhost z „mysqldump --insert-ignorować ...”, a następnie spróbuj zaimportować z phpmyadmin na żywo maszynie.

lub spróbuj połączyć się na żywo bazy danych z narzędzi wiersza poleceń (skonfigurować bazę danych, aby móc się połączyć z innymi hostami niż „localhost” pierwszy!)

to można spróbować następujących czynności:

$ mysql -f -p < yourdump.sql

z opcją -f "force" można ignorować błędy podczas importowania. To jest tak samo jak dodanie parametru "--force" do "mysqlimport".

+1

+1 dla opcji siły. Zapisane podczas próby wstawienia danych do pustej bazy danych. – AWippler

0

Miałem ten sam problem, mój problem polegał na tym, że miałem kolumnę klucza podstawowego o nazwie unique_id, a gdy spróbujesz dodać dwie takie same wartości w tej podstawowej kolumnie z kluczem, wraca ona z błędem poniżej.

enter image description here enter image description here

dane klucza kolumny podstawowej jest wszystko przypuszczają być różne, tak że dolną 1 Zmieniłem do 3 i błąd odszedł.

Twój MySql nie jest uszkodzony, podobnie jak poprzednie odpowiedzi i komentarze.

0

Musisz usunąć wszystkie poprzednie tabele, nad którymi piszesz. jeśli wykonujesz pełne odtworzenie wszystkich tabel, usuń wszystkie istniejące tabele.

0

Dla mnie przydatne były opcje foreign_key_checks i truncate table.

SET foreign_key_checks = 0; 
TRUNCATE `oc_address_type`; 
SET foreign_key_checks = 1; 

Uruchom powyższy skrypt sql i po zaimportowaniu.

Powiązane problemy