![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 2 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
próbuję skopiować część jednej z tablicy do drugiej, dodając pola, które są zależne od poprzednich pól w tabeli, a mianowicie chce w jednej z kolumn dodać sumę wartości jakiejś kolumny z poprzednich rekordów. Czyli chcę otrzymać coś takiego: id-cyfra-suma 1 - 10 - 0 [tutaj 0 bo zliczamy z poprzednich bez tej którą obecnie dodajemy] 2 - 30 - 10 3 - 20 - 40 4 - 15 - 60 5 - 70 - 75 Do kopiowania tabeli używam czegoś takiego:
Aby osiągnąć taki efekt dodawałem do selecta jeszcze jeden parametr: select sum(points) i teoretycznie powinien działać dobrze ale problem jest z tym jak MySQL działa - nie dodaje tych rekordów w locie, lecz robi to sobie wszystko w pamięci więc każde wywołanie sum(points) zwraca 0 bo tam nic nie ma, i dopiero jak to skończy to te wpisy dodaje. A więc moje pytanie jest następujące - jak coś takiego zrobić? Bardzo mi zależy na czystym kodzie SQL, który jest jak najbardziej optymalny bo ta tabela może dojść do miliona rekordów. Próbowałem robić w jakiś specyficzny sposób update po tym dodaniu - działał, ale zabójczo wolno. Tak więc proszę (a wręcz błagam) Was o jak najszybciej działające rozwiązanie. Z góry dzięki za pomoc. [edit] Hah, rozwiązaniem są triggery.. Tylko oświećcie mnie w jaki sposób mam je niby wgrać gdy nie mam dostępu do konsoli, lecz tylko przestarzały phpMyAdmin no i oczywiście możliwość wgrywania plików php? Jak powinien wyglądać prosty skrypt w PHP przez który dałoby się to wgrać? Ten post edytował Snowak 5.03.2008, 20:35:53 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 10:02 |