![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 11.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam pewien skrypt (SG w grze minecraft, skrypt jest w javie, chyba nie ma zrodel), tworzy on statystyki z gry, ale brakuje mi w nich informacji o czasie stworzenia wpisu do bazy. Więc dodalem do tabeli kolumnę z cuurent_timesatamp. Jak dodaje ręcznie nowy wiersz do tabeli przez phpmyadmin wszystko jest ok ale skrypt już nic nie dodaje przez tą nową kolumnę którą zrobiłem Macie jakiś pomysł? Myślę żeby co pare minut robić po prostu kopie nowych wpisów z tabeli stworzonej przez gre i w tej kopi dać jakiś time(). I na tej kopi pracować. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 273 Pomógł: 52 Dołączył: 3.02.2013 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli masz dostęp do TRIGGERÓW w bazie danych (wątpliwe) to w ten sposób możesz zareagować na zdarzenie AFTER INSERT.
Twój pomysł będzie działać, ale do najlepszych nie należy przy większej ilości rekordów będzie coraz wolniej, wolniej i wolniej, aż w końcu przestanie działać. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 11.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
czyli tylko przez konsole da się triggery zrobić, PMA nie da sie?
mam hosting na linux.pl, tam jest dostęp SSH, ale czy do bazy też, nie wiem. tabela nie będzie duża, nie musi też szybko wykonywać się skrypt, wiec najwyżej zastosuje swój sposób. Czy mysql ma jakąś komede do importowania danych z tabeli 1 do 2, ale tak żeby jak się drugi raz wywola skrypt to żeby nie importowal ponownie tych samych danycyh, tylko nowe? tabela 2 bedzie miale dodatkowa kolumne z tym czasem |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 273 Pomógł: 52 Dołączył: 3.02.2013 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Aby dodawać triggery w MySQL trzeba mieć roota do bazy danych, z tego co pamiętam.
Idąc drogą kombinowania to mógłbyś to zrobić za pomocą przykładowo:
Coś w tym rodzaju Aby pobierać tylko nowe rekordy, a nie zawsze od nowa te same, to możesz pobawić się indexami UNIQUE, ale to już zależy od zestawu danych Ten post edytował mstraczkowski 3.03.2013, 21:59:36 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 11.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
mam w panelu PMA wyzwalacze, mogę je dodawać.
Więc mam jakieś tam triggery, tak? zrobiłem coś takiego http://episiongames.pl/ss.jpg ale baza wywala błąd #1442 ja coś dodaje do tej tabeli nie mogę znaleźć w necie nic na temat tiggerów tworzonych w ten sposób co na screenie. proszę o jakiś przykład, niekoniecznie rozwiązanie mego problemu Robi się je raczej inaczej, ponieważ jak daje begin, end, inserty w kodzie to nawet nie chce zapisać takiego wyzwalacza PMA |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 273 Pomógł: 52 Dołączył: 3.02.2013 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Prawdopodobnie nie chce zapisać bo nie zdefiniowałeś prawidłowego separatora, przyjmuje się przy triggerach separator jako "$$" lub "//"
A ustawia się go pod polem do wprowadzenia zapytania SQL (często się o tym zapomina), przykładowy trigger może wyglądać tak:
(IMG:http://i45.tinypic.com/29goh7p.png) Ten post edytował mstraczkowski 4.03.2013, 12:35:55 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 11.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
nie do końca o to mi chodziło, ale już jest ok
w wyzwalaczach sama część BEGIN END wystarczy. Zawsze daawałem coś przed BEGIN jeszcze i stąd moje problemy Dzięki, jeszcze wczoraj nie wiedziałem że coś takiego jak trigger istnieje. Teraz test czy rozwiąże on mój problem |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 10:19 |