Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Trigger i przerwanie inserta
snemeii
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.05.2012

Ostrzeżenie: (0%)
-----


Borykam się z pozoru prostym problemem i nie mogę sobie ztym poradzić. Mianowicie jest aplikacja webowa i tabela (XX) do której ludzie dodają jakieś kwoty pieniężne... Rzecz ma być taka, że jeżeli suma tych kwot wpisanych przekroczy 10.000 to ma niepozwalać wpisywać kolejnych.

Próbuję znaleźć rozwiązanie z Triggerem, ale jak zrobić by trigger BEFORE INSERT przerywał operację jeżeli SUM > 10.000 ?
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Zawsze możesz dać nie BEFORE a AFTER i kasować ostatni wpis wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
snemeii
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.05.2012

Ostrzeżenie: (0%)
-----


Dobrze by bylo, żeby uzytkownik wiedział ze coś jednak nie weszło...
Mogę z poziomu aplikacji sprawdzać czy kwota nie została przekroczona, jednak myślalem ze gdy zrobię to na poziomie bazy będzie to znaczniej bezpieczniejsze, tym bardziej że dodawać może 100 userów na raz.
Go to the top of the page
+Quote Post
Sephirus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Od wersji 5.5 Mysqla można rzucać sygnały AFAIK http://dev.mysql.com/doc/refman/5.5/en/signal.html


Możesz wtedy jeśli wykryjesz że suma jest większa od określonej dać:

  1. -- twój kod
  2. IF (suma > 10000) THEN
  3. SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Za duza suma';
  4. -- dalszy kod





--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 13:32