Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: rtrobert w Marzec 19, 2014, 20:33:55
-
Witam
Kiedyś tworząc bazę towarów powprowadzałem cech towarów o nazwie długość: xxxx mm - gdzie xxxx to długość w mm tych cech są tysiące poprzypisywane do kilkunastu tysięcy towarów.
Teraz te cechy bardzo przeszkadzają mi w sortowaniu wyników wyświetlania towarów.
Czy jest jakaś możliwość abym usunął z bazy i powiązań nie robiąc tego ręcznie. Może jakiś skrypt sql usuwający cechę z daną frazą, może ktoś podpowie z jakich tabel powywalać bezpośrednio z bazy. Jak do tego podejść?
-
Jest taka tabela Tw_CechaTw w której sa zapisane powiązania towarów z cechami. Ja ją wyczyścisz usuniesz cechy z towarów. A póżniej możesz z poziomu Subiekta wyczyścić słownik cech.
-
Dzięki. Już się przyjrzałem tabeli, o której piszesz. Usuwać całe wiersze nie zważając na numer id klucza w pierwszej kolumnie cht_Id. Chodzi o to że jak usunę tylko to co chcę to będę miał spore dziury w numeracji bo nie wszystkie przypisania cech chcę usunąć.
Czy później zamiast ręcznie usuwać cechy ze słownika w subiekcie mogę je usunąć z tabeli sl_CechaTw ?
-
Recznie ma tą zaletę, ze jak cecha bedzie powiązana, to nie pozwoli jej usunąć, a z bazy nie pamiętam czy jest taka blokada i możesz zrobić sobie kuku.
-
Chciałbym oczyścić Słownik "cechy towarów" z ponad 1000 cech które zostały zaimportowane przez integrator do Subiekta. Są to cech symbolizujące kategorię. Budowa/Składnia cechy wg schematu: "kat:xx:xxxxxxx".
Czy możliwe jest hurtowe usunięcie cech ze słownika z poziomu Subiekta, czy muszę oczyścić odpowiednią tabelę w bazie? Jeśli tabelę to proszę o podpowiedź jakiej szukać?
Kolejne pytanie: czy w ogóle mogę cechy ot tak sobie usunąć ze słownika poprzez wyczyszczenie wpisów w tabeli w bazie czy też z poziomu Subiekta? Czy wtedy znikną one także z kart produktów?
-
Skrypt powinien znajdować się na forum, poszukaj. Wszystko można też usunąć z interfejsu użytkownika - najpierw powiązania z towarami, później cechy.
-
Nie mogę znaleźć wspomnianego skryptu. Szukam od szczegółu (brak skryptu w wynikach) do ogółu (dużo wyników = analiza trochę potrwa).
Czy muszę usuwać "Powiązania cech z towarami"? Nie zostaną usunięte wraz z usunięciem cech?
Najszybciej z interfejsu użytkownika zrobi się to operacjami zbiorczymi na towarach? Czy jest szybsze rozwiązanie?
Tak, wiem, że można usunąć cechy ze słownika z poziomu interfejsu użytkownika, jednak nie zauważyłem aby dało się to zrobić zbiorczo. Przy ponad 1000 cechach potrzebuję rozwiązania hurtowego, czy takowe istnieje z poziomu interfejsu użytkownika?
-
a probowałeś zrobić tak żeby zaznaczyć interesujące cie produkty wszystkie na raz wciasna prawy/zbiorcze/grupy/"Dodaj/usuń ceche"
-
a probowałeś zrobić tak żeby zaznaczyć interesujące cie produkty wszystkie na raz wciasna prawy/zbiorcze/grupy/"Dodaj/usuń ceche"
A przeczytałeś ile jest cech ? Próbowałeś kiedyś wykonać daną operację 2000 razy ? ;)
Zbiorczo można usunąć tylko serwisowo, na przykład takim zestawieniem SQL "select 1 delete from tw_CechaTw delete from sl_CechaTw".
-
Daniel, dzięki za nazwy tabel.
Czyli wnioskuję, że:
tw_CechaTw - zawiera powiązania cech z towarami
sl_CechaTw - to słowniki cech towarów,
zgadza się?
Napiszę odpowiednie zapytanie sql które zawęzi wyniki do wartości: "kat:xx:xxxxx" aby nie usunąć pozostałych cech.
Pytanie tylko Daniel, czy najpierw powinienem usunąć powiązania cech z towarami (na kartach produktów) czyli tabela: tw_CechaTw?
-
Najpierw musisz kasować z tw_CechaTw. Próba skasowania cechy z sl_CechaTw, która jest przypisana do towaru skończy się niepowodzeniem (klucz obcy to zablokuje). Do tego dochodzą jeszcze właściwości cech towarów, jeśli z nich korzystasz.
-
Rozumiem. Ogromne dzięki.
Kategorie ze sklepu, które zostały zaimportowane do Subiekta do słownika cech towarów (jako cechy) z tego co kojarzę nie miały nic wspólnego z właściwościami cech towarów, więc moje działania powinny się ograniczyć do tych dwóch tabel i zawartych w nich cechach oraz powiązaniach z towarami.
-
Ok. Teraz już wiem, że Subiekt w zestawieniach nie pozwala na DELETE (aby zestawienie rozpoczynało się od DELETE).
SELECT wypluwający mi cht_IdTowar i przyporządkowaną mu ctw_Nazwa sformułowany poprawnie.
W związku z powyższym jakim narzędziem powinienem operować do oczyszczenia tabel, MS SQL Management Studio?
-
Ok. Teraz już wiem, że Subiekt w zestawieniach nie pozwala na DELETE (aby zestawienie rozpoczynało się od DELETE).
SELECT wypluwający mi cht_IdTowar i przyporządkowaną mu ctw_Nazwa sformułowany poprawnie.
W związku z powyższym jakim narzędziem powinienem operować do oczyszczenia tabel, MS SQL Management Studio?
Management Studio to jedno ale @dkozlowski podał jeszcze jeden sposób:
Zbiorczo można usunąć tylko serwisowo, na przykład takim zestawieniem SQL "select 1 delete from tw_CechaTw delete from sl_CechaTw".
-
Czyli moje zapytanie z zawężeniem nazw do scematu: "kat:xxxx:xxxxxxx" powinno wyglądać tak?:
SELECT 1
DELETE
FROM tw_CechaTw tw
LEFT JOIN sl_CechaTw sl ON tw.cht_IdCecha=sl.ctw_Id
WHERE ctw_Nazwa LIKE 'kat:%'
-
Czyli moje zapytanie z zawężeniem nazw do scematu: "kat:xxxx:xxxxxxx" powinno wyglądać tak?:
SELECT 1
DELETE
FROM tw_CechaTw tw
LEFT JOIN sl_CechaTw sl ON tw.cht_IdCecha=sl.ctw_Id
WHERE ctw_Nazwa LIKE 'kat:%'
Raczej bardziej tak musisz najpierw to zrobić:
EDIT: robiłem małe poprawki w zapytaniu.
SELECT 1
DELETE tw_CechaTw
FROM tw_CechaTw
INNER JOIN sl_CechaTw ON cht_IdCecha=ctw_Id and ctw_Nazwa LIKE 'kat:%'
I potem jeśli chcesz cechy usunąć:
SELECT 1
DELETE
FROM sl_CechaTw
WHERE ctw_Nazwa LIKE 'kat:%'
Polecam zrobić kopię bazy i na kopii przetestować to na spokojnie.
-
Panowie, wielkie dzięki za sugestie i poprawki!
Zapytania spisały się znakomicie.
Wszystko przebiegło prawidłowo.