mysql przy imporcie pomija dublujące się dane
2014-05-05 15:28:48 Post #1
gość_Kyu
Witam.
Muszę zimportować do mysql bazę z accessa. Najpierw exportowałam ją do pliku txt. Samą czynność importu potrafię wykonać, problem pojawia się wtedy, gdy mam powtarzające się dane, np w tabeli dane_cenowe mam kolumny Identyfikator i Id_towaru. W obydwu są cyfry 1-15 w takiej samej kolejności. Po imporcie do mysql i wpisaniu polecenia select * from dane_cenowe; okazuje się, że kolumnę Identyfikator program pominął i w każdym wierszu w tej kolumnie jest tylko znak |. Kolumna dane_cenowe jest ok.
Jak zmusić mysql, żeby zaimportował Identyfikator?
Nie mogę zmienić danych.
Bardzo proszę o pomoc i z góry dziękuję.
2014-05-05 20:07:21 Post #2
nospor
Moze masz zla strukture pliku txt.
2014-05-06 06:02:19 Post #3
gość_Kyu
Jest to zwykły plik .txt, dane wyglądają tak:
1;23;1;1
2;23;1;2
3;23;2;3
4;23;5;4
5;23;4;5
6;23;2;6
7;23;3;7
8;23;2;8
9;23;3;9
10;23;4;10
11;23;5;11
12;23;4;12
13;23;3;13
14;23;4;14
15;23;5;15
I wywala właśnie pierwszą kolumnę, reszta jest ok.
2014-05-06 08:27:25 Post #4
nospor
A jaką dokładnie komendą robisz import tego pliku do mysql?
Podaj też dokładną strukture tabeli, najlepiei polecenie CREATE
2014-05-06 13:28:39 Post #5
gość_Kyu
Komenda CREATE:
http://zapodaj.net/2bb527b714b42.png.html
aktualnie mam taką. Próbowałam też z kluczem, próbowałam klucz dodać osobno po utworzeniu tabeli... ale za każdym razem to samo. Klucz powinien być na polu id_towaru.
Struktura import:
load data local infile 'C:/Users/Kyu/Documents/Dane_cenowe.txt' into table dane_cenowe
fields terminated by ';' ;
Używam WebServ, nie wiem, czy to ma jakieś znaczenie...
2014-05-06 17:03:12 Post #6
gość_Kyu
Zrobiłam jeszcze jeden eksperyment - w pliku tekstowym na koniec każdej linii dodałam przecinek, a w poleceniu importowania dopisałam
lines terminated by ',';
W efekcie zaimportował wszystkie kolumny, ale w dziwny sposób:
http://zapodaj.net/3e7811256ccea.png.html
próbowałam rozszerzyć okno konsoli i wczytać tabelkę jeszcze raz, bo wydawało mi się, ze się nie mieści (taką sytuację już miałam), ale nie pomogło.
2014-05-06 17:18:30 Post #7
nospor
Ten Twoj znaczek | to nie zadna wartosc komorki, tylko wizualny rozdzielacz danych przy wyswietlaniu.... Teraz masz juz wszystko prawidlowo dodane.
Zainteresuj sie jakims programem do obslugi bazy danych, bo widze nie ogarniasz co robi konsola

Moze byc np. PhpMyAdmin, wowczas przez przegladarke bedziesz mogl zarzadzac bazą i bedziesz lepiej widzial co jest wartoscią a co rozdzieleniem.
2014-05-06 17:33:00 Post #8
gość_Kyu
Niestety, do tego zadania musi być mysql, tak wymaga nauczyciel...
Tak dla pewności - czyli nawet takie rozjechane będzie działało dobrze? W późniejszych etapach zadania muszę użyć inner join do wyszukiwania danych z różnych tabel.
2014-05-06 17:43:23 Post #9
nospor
A czy ja ci kaze nie uzywac mysql? Ja ci tylko proponuje narzedzie, dzieki ktoremy bedziesz mogl lepiej sobie to wizualizowac bo teraz masz z tym problem
2014-05-06 17:45:10 Post #10
nospor
ps: skoro juz robisz zadanie na zalicznie, to wypadaloby sie troche przylozyc.... czemu wszystko to VARCHAR50?
Przeciez tam masz same liczby, wiec to powinny byc pola typu liczbowego a nie tekstowego
2014-05-06 18:08:10 Post #11
gość_Kyu
Mówiąc wprost - tyle nauczyli w szkole, a nie mam na tyle dużo czasu, żeby usiąść i solidnie się przyłożyć... Będę nadrabiać braki w wiedzy w wakacje...
Goni teraz projekt za projektem, żaden z nauczycieli nie wyjaśnia do końca o co chodzi, bo jest za mało godzin lekcyjnych na wszystko, a w podręczniku są błędy. Zadania zrobić trzeba, a jakby nad każdym usiąść na tyle dokładnie, jak się powinno żeby poznać temat, to tak naprawdę nie dałoby rady zrobić żadnego w terminie.
W każdym razie dziękuję bardzo za pomoc, trochę się rozjaśniło

mogę już ruszyć z zadaniem dalej
Odpowiedz