[inne] Przypisanie aliasu w PT4 poprzez PostgreSQL'a. Spec od SQL'a needed!

    • evLeisure
      evLeisure
      Brąz
      na forum od: 14.11.2011 Posty: 3 051
      Hej

      W PT4 mamy możliwość przypisania do gracza aliasu. Niestety ograniczono to do przypisania jednego aliasu na raz, a ja mam ich do przypisania 20k... Mimo marnej wiedzy na temat SQL'a próbuję napisać skrypt, który zrobi to bezpośrednio w bazie pomijając PT4.

      kod:
      UPDATE tourney_hand_summary SET id_winner = 19580 WHERE id_winner != 19580 AND id_winner != 1 AND id_winner != 0 AND id_winner != -1;
      UPDATE tourney_hand_player_statistics SET id_player = 19580 WHERE id_player != 19580 AND id_player != 1 AND id_player != 0 AND id_player != -1;
      UPDATE tourney_hand_player_combinations SET id_player = 19580 WHERE id_player != 19580 AND id_player != 1 AND id_player != 0 AND id_player != -1;
      UPDATE tourney_summary SET id_winner = 19580 WHERE id_winner != 19580 AND id_winner != 1 AND id_winner != 0 AND id_winner != -1;
      UPDATE tourney_results SET id_player = 19580 WHERE id_player_real != 19580 AND id_player_real != 1 AND id_player_real != 0 AND id_player_real != -1;
      UPDATE player SET id_player_alias = 19580 WHERE id_player != 19580 AND id_player != 1 AND id_player != 0 AND id_player != -1;
      


      Powyższy skrypt podkradłem z tematu na 2+2 i ciutkę go zmodyfikowałem.

      Niestety wyskakuje mi poniższy błąd, z którym nie mogę sobie poradzić.

      kod:
      ERROR: duplicate key value violates unique constraint "tourney_hand_player_combinations_primary_key"
      

      Bład wynika z tego, że gracz którego próbuję przypisać innemu jako alias uczestniczył z nim w rozdaniu.

      Jak to ominąć? Jak zmusisz bazę do wykonania tego skryptu pomimo powyższego błędu?

      Zaznaczam, że NIE zależy mi na stabilności bazy ani nawet na jej poprawnym działaniu, bo powyższe zabiegi prowadzą ostatecznie do tego, iż bazy tej nie da się wykorzystywać podczas gry. Nie przeszkadza mi to, ponieważ nie do tego ma ona służyć.

      Pozdrawiam
  • 1 odpowiedź
    • evLeisure
      evLeisure
      Brąz
      na forum od: 14.11.2011 Posty: 3 051
      kod:
      ALTER TABLE tourney_hand_player_statistics DROP CONSTRAINT tourney_hand_player_statistics_primary_key
      ALTER TABLE tourney_hand_player_combinations DROP CONSTRAINT tourney_hand_player_combinations_primary_key
      ALTER TABLE tourney_results DROP CONSTRAINT tourney_results_primary_key
      

      Rozwiązane. Jakby ktoś kiedyś się interesował to trzeba zdjąć primary keye i śmiga ;)