aha44 (Użytkownik)
Prawa Ręka Admina
Posty: 166
|
Import do SQLa z pominieciem kolumn 2007/10/19 18:04 |
Oklaski: 16   |
Może głupio trochę to zabrzmi ale męcze się z czymś takim: Chcę zaimportować bezpośrednio do tabeli w bazie danych dane, z innej bazy, ktorej poszczegolne pola / kolumny nie do konca sa zgodne ze struktura tabeli do ktorej ma to byc zaimportowane, wiec podczas importu musze pominąć niektóre kolumny (nie ma mozliwości ich wycięcia - z roznych powodow np. bo są w środku tekstu). Pytanie: Mógłby ktoś mi podać prawidłową składnie do tego? Kod: | INSERT INTO `jos_content` (id, title, introtext, state, sectionid, catid, created) VALUES ('', 'tytuł', 'tekst docelowy', 'kolumna niechciana 1', 'kolumna niechciana 2', 1, 17, 104, NOW());
|
w pierwszej części wiadomo są nazwy pól, w drugiej importowany tekst. Mnie chcodzi o coś takiego - jakiego określenia użyć w pierwszej części, między introtekst a state, by nie zaimportowało mi tekstu który oznaczyłem jako "kolumna niechciana 1 i 2"
Proszę o pomoc, osobiście nie znam zbytnio SQLa, hmm prawie wcale , a nie moge znaleść nigdzie indziej jakiejś w miare prostej składni, która rozwiązywałaby mój problem.
Nie chce ingerować w teks np z importem do excela czy Accesa by rozłożyło mi te kolumny w środku na kolumny by móc je po prostu usunąć bo poleci mi kodowanie znaków, a i z tym jest w h.. roboty po 300 tyś danych.
|
|
|
Temat został zablokowany. |
Krzysztof Stachyra (Administrator Forum)
Administrator Forum
Posty: 697
|
Odp:Import do SQLa z pominieciem kolumn 2007/10/22 00:43 |
Oklaski: 88   |
aha44 napisał:Może głupio trochę to zabrzmi ale męcze się z czymś takim:
Chcę zaimportować bezpośrednio do tabeli w bazie danych dane, z innej bazy, ktorej poszczegolne pola / kolumny nie do konca sa zgodne ze struktura tabeli do ktorej ma to byc zaimportowane, wiec podczas importu musze pominąć niektóre kolumny (nie ma mozliwości ich wycięcia - z roznych powodow np. bo są w środku tekstu).
Pytanie: Mógłby ktoś mi podać prawidłową składnie do tego? No cześć Aha44. Widać , że struktura bazy danych SQL jest Ci mało znana, co nie stanowi jakiejś ujmy. Bo nie tylko Ty nie " czujesz" tematu. Ale nie tylko o bazę danych tutaj chodzi. Chodzi też o strukturę artykułów w Joomla! czy Mambo. Bo przecież wiesz, że aby artykuł zaistniał, musi być w określonej sekcji i kategorii. No chyba że jest to materiał statyczny. Ale z tego co piszesz, nie o takie Tobie chodzi. I teraz co ty chcesz zrobić: aha44 napisał:
Kod: | INSERT INTO `jos_content` (id, title, introtext, state, sectionid, catid, created) VALUES ('200', 'tytuł', 'tekst wprowadzajacy', 'kolumna niechciana 1 - Publikacja', 'kolumna niechciana 2', 1, 17, 104);
|
Muszę to poprawić. Czyli powinno wyglądać tak, ale jeszcze nie docelowo:
Kod: | INSERT INTO `jos_content` (id, title, introtext, state, sectionid, catid, created) VALUES ('', 'tytuł', 'tekst wprowadzajacy', 'publikacja - niechciana', 'id sekcji - niechciane', ID kategorii - tutaj 1, 2007-06-07 00:00:00);
|
Mała legenda:
id - to jest ID pozycji w jos_content, czyli id artykułu. Nie może być puste. ( obowiązkowo! )
title - tytuł artykułu. ( obowiązkowo! )
introtext - Tekst wprowadzający. Nie jest konieczny. W miejscu artykułu pojawi się tylko odnośnik " Czytaj całość..." o ile następne pole, którego nie ująłeś w swoim wykazie jest zapełnione.
fulltext - Tekst z drugiego pola edytora. Też może być pusty, o ile określone zostały pola powyżej introtext.
state - Opublikowany lub nie. Można tutaj wpisać wartość 1,0 lub -1. 1 oznacza że artykuł jest opublikowany i dotyczy wszystkich artykułów. 0 że jest nie opublikowany i że jest to artykuł statyczny. -1 oznacza, że jest to artykuł zwykły, nie opublikowany. ( obowiązkowo! )
sectionid - ID sekcji. Ty źle policzyłeś ilość pól do zaimportowania, bo ich ilość musi być zgodna z z liczbą pól do wpisania do bazy. Czyli lewa część importowana musi zgadzać się z prawą częścią wpisywaną do bazy. Ilość pól musi być zgodna. Tutaj jako ID sekcji masz wartość 1. ( obowiązkowo! )
catid - ID kategorii. Musi być podana, jako że artykuł musi być przypisany do kategorii. Jeśli wpiszesz 0 oznaczysz go jako artykuł statyczny, i nie będziesz mógł wypełnić pola fulltext tylko pole introtext. Ty w swoim przykładzie nadajesz kategorii ID 17. ( obowiązkowo! )
created - Data utworzenia artykułu. Ty masz wartość NOW(), a to może nie zadziałać. Wpisz normalnie datę, czyli np: 2006-06-07 00:00:00.
Możesz wpisać zapytanie do bazy SQL, lub poprawić zrzut bazy z której chcesz zrobić import np. w ten sposób:
Przykład tylko jednego artykułu. Następne z polami z odpowiednimi wartościami dodajesz po przecinku i po ENTERZE:
Kod: |
INSERT INTO `jos_content` (`id`, `title`, `title_alias`, `introtext`, `fulltext`, `state`, `sectionid`, `mask`, `catid`, `created`, `created_by`, `created_by_alias`, `modified`, `modified_by`, `checked_out`, `checked_out_time`, `publish_up`, `publish_down`, `images`, `urls`, `attribs`, `version`, `parentid`, `ordering`, `metakey`, `metadesc`, `access`, `hits`) VALUES (Nowe ID pozycji np: 200, 'Tytuł', 'Skrócony tytuł', 'Tekst wprowadzający', 'Pełny tekast', 0, Nowa sekcja np 100, 0, Nowa kategoria np 100, 'Czas utworzenia np: 2007-08-03 00:00:00', Twoje ID:62, 'Autor - Twój Nick. np: Aha44', 'Czas modyfikacji np: 2007-08-17 22:29:12', ID autora modyfikacji np Twoje: 62, 0, '0000-00-00 00:00:00', 'Czas rozpoczęcia publikacji np : 2006-08-03 01:00:00', 'Czas zakończenia np: 0000-00-00 00:00:00', 'Tutaj obrazek mosiimage lub puste pole, parametry np: obrazek.gif|left|Tytuł obrazka|0||bottom||', '', 'pageclass_sfx=\nback_button=\nitem_title=1\nlink_titles=\nintrotext=1\nsection=
0\nsection_link=0\ncategory=0\ncategory_link=0\nrating=0\nauthor=1\ncreateda
te=1\nmodifydate=0\npdf=1\nprint=0\nemail=1\nkeyref=\ndocbook_type=', Wersja np. 1, 0, Kolejność wpisz np: -9999, '', '', 0, Odsłony - wpisz 0);
|
Lub tak:
Kod: |
INSERT INTO `jos_content` VALUES (Nowe ID pozycji np: 200, 'Tytuł', 'Skrócony tytuł', 'Tekst wprowadzający', 'Pełny tekast', 0, Nowa sekcja np 100, 0, Nowa kategoria np 100, 'Czas utworzenia np: 2007-08-03 00:00:00', Twoje ID:62, 'Autor - Twój Nick. np: Aha44', 'Czas modyfikacji np: 2007-08-17 22:29:12', ID autora modyfikacji np Twoje: 62, 0, '0000-00-00 00:00:00', 'Czas rozpoczęcia publikacji np : 2006-08-03 01:00:00', 'Czas zakończenia np: 0000-00-00 00:00:00', 'Tutaj obrazek mosiimage lub puste pole, parametry np: obrazek.gif|left|Tytuł obrazka|0||bottom||', '', 'pageclass_sfx=\nback_button=\nitem_title=1\nlink_titles=\nintrotext=1\nsection=
0\nsection_link=0\ncategory=0\ncategory_link=0\nrating=0\nauthor=1\ncreateda
te=1\nmodifydate=0\npdf=1\nprint=0\nemail=1\nkeyref=\ndocbook_type=', Wersja np. 1, 0, Kolejność wpisz np: -9999, '', '', 0, Odsłony - wpisz 0);
|
aha44 napisał:
w pierwszej części wiadomo są nazwy pól, w drugiej importowany tekst. Mnie chcodzi o coś takiego - jakiego określenia użyć w pierwszej części, między introtekst a state, by nie zaimportowało mi tekstu który oznaczyłem jako "kolumna niechciana 1 i 2"
Reasumując. To co jest niezbędne musi być podane, reszta oznaczona lub opisana jako niekonieczna nie musi być podana. Wystarczy wpisać '', czyli dwa apostrofy. To tyle. Wiem że masz duży problem, ale czy koniecznie musisz to wprowadzać?. Jeśli tak, to po prostu zmodyfikuj plik SQL zrzucony ze starej bazy w sposób opisany przeze mnie. Tylko pamiętaj, że ID pozycji musi być większe od najwyższego ID artykułu na Twojej stronie. Bo inaczej baza zgłosi Ci błąd. To narka. Jokris. Pozdrawiam.
|
|
|
Temat został zablokowany. |
aha44 (Użytkownik)
Prawa Ręka Admina
Posty: 166
|
Odp:Import do SQLa z pominieciem kolumn 2007/10/23 01:08 |
Oklaski: 16   |
Dzięki za info,napracowałeś się, ale ja to doskonale wiem, tylko mam baze już gotową z innego zupełnie systemu i chce ją zaimplementować na swoje potrzeby czyli do joomli. Ona ma dwie akurat kolumny których nie mam pod co zaimportować do tabeli jos_content bo nie ma odpowiednich pól w tej tabeli. Wyciąć te dwa pola (kolumny) z pliku sql nie da rady, bo polecą mi ogonki jak zaczne ten plik rozkładac na części pierwsze, dodatkowo on ma prawie 300 tyś linijek i jest ciężko edytowalny. Gdyby dane w tych kolumnach były jednakowe to bym je w pitpadzie zastąpił jakimś ciągiem znaków i byłoby ok, ale to są zmienne dane. Z mniejszych plików baz danych takie coś (kolumny) wycinałem w accesie, a potem robiłem spowrotem export do pliku txt i było ok. Ale za każdym prawie razem coś się rypało z ogonkami
|
|
|
Temat został zablokowany. |
|