Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Zawartość każdego rekordu
Forum PHP.pl > Forum > Przedszkole
benzulli
Witam

Mam pewien problem z modyfikacją pewnego dodatku w wordpressie. Potrzebuję zrobić tak, że każdy rekord kolumny 'expiry' będzie zawierał w sobie '2020'. Za każdym razem kiedy się doda nowy rekord, stała wartość tej kolumny. Najłatwiej będzie jak po prostu baza danych zrobi to za mnie i nie będę musiał dodawać rekordu w formularzu.
mar1aczi
trigger
by_ikar
@mar1aczi - do tego nie może użyć triggera, dlatego że triggerem nie zmodyfikujesz tabeli na której aktualnie operujesz.

Cytat
Within a stored function or trigger, it is not permitted to modify a table that is already being used (for reading or writing) by the statement that invoked the function or trigger.


http://dev.mysql.com/doc/refman/5.0/en/sto...strictions.html

Chyba że są to operacje na dwóch różnych tabelach, ale o tym dowiemy się dopiero w momencie kiedy autor tematu napisz dokładniej o co mu chodzi.
benzulli



Struktura tabeli i tabela chcę, żeby w kolumnie expiry zawsze była ta sama data (dajmy na to 2015-07-26 00:00:00)[nawet jeśli dodam nowe rekordy].
ZaXaZ
Cytat
Struktura tabeli i tabela chcę, żeby w kolumnie expiry zawsze była ta sama data (dajmy na to 2015-07-26 00:00:00)[nawet jeśli dodam nowe rekordy].

  1. ALTER TABLE tabela
  2. CHANGE expiry expiry datetime DEFAULT '2015-07-26 00:00:00'

I pomijaj w insert/update kolumne expiry jak nie ma sie zmieniac.
by_ikar
Tak jak myślałem z tym triggerem. A co do twojego problemu, jeżeli w żaden sposób nie nadajesz tej daty z poziomu skryptu, a chyba tak nie robisz, bo widzę tam zera. To możesz ustawić wartość domyślną (default) dla tej kolumny.
mmmmmmm
A po co ci kolumna z wartością, skoro to jest wartość stała?
benzulli
To jest zbugowany plugin do wordpressa, na którym jest już cały sklepik i muszę po prostu przerobić tak, aby kolejny - zbugowany i niesupportowany plugin - wp e-commerce coupon codes - mógł działać. Jednym słowym kupony na zniżki działają tylko wtedy, kiedy jest podana data unieważnienia kuponu, a te z kolei są generowane z automatu i data jest zawsze 0000-00-00 00:00:00 (coś takiego) to muszę w bazie dać jakąś stałą wartość z przyszłą datą.

P.S.
Default nie działa.

Widzę, że chyba nie będzie innej opcji jak po prostu grzebanie w tych plikach, czasochłonne, ale w końcu pewno dotrę do tego zapytania.
by_ikar
Zadziała, tylko zwróć uwagę że to jest datetime, czyli musisz podać date i czas, w twoim przypadku będzie to

Kod
2020-01-01 00:00:00
benzulli
by_ikar, robiłem tak jak mówisz wcześniej i niestety nie działa.
by_ikar
Więc ta data nieprawidłowa jest przesyłana na poziomie skryptu, cóż, nie pozostaje ci nic innego jak sprawdzić ten skrypt. Data jest niepoprawna, stąd ustawiana jest na same zera.
benzulli
Obszedłem trochę problem i zrobiłem w cronie (co 5 sekund) coś takiego:

  1. $query = mysql_query("UPDATE wordpress_auto_wpsc_coupon_codes SET expiry = '2018-08-25 00:00:00'");


Moje pytanie brzmi następująco:

jak powinno brzmieć zapytanie, które zaktualizauje mi wszystkie te kolumny 'expiry', które mają wartość "0000-00-00 00:00:00" na "2018-08-25 00:00:00"?
nospor
...where expiry='0000-00-00 00:00:00'
benzulli
Dzięki mistrzu, do zamknięcia smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.