Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Aktualny czas podczas modyfikacji
El Wieczor
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.05.2007

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


Jak skonstruować tabelę, żeby podczas zmiany wartości choćby jednek z trzech pól w wierszu automatycznie wstawiał mi czas w znaczniku Unixa do innego pola, czyli:

wiersz [time][data1][data2][data3][data4]

i powiedzmy UPDATE table SET data2 = 0 ma zmienić data2 i jednocześnie automatycznie wstawić w pole [time] czas tej zmiany tylko najlepiej jako znacznik Unixa.

Edit:
Albo... coś podobnego, ale chyba nawet bardziej by mi przypasowało.
A najlepiej jedno i drugie naraz.

Podczas odczytu wiersza, jest on przedtem przetwarzany, tzn. wartości jednych pól są nadpisywane i zależą od wartości innych pól w tym samym wierszu a pole [time] tak jak wyżej, czyli aktualny znacznik czasu Unixa.

Myślałem, że trigger to zrobi a się okazało, że SELECTA nie lubi sad.gif

Ten post edytował El Wieczor 4.05.2007, 16:01:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
kicaj
post
Post #2





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Nie wiem czy skumalem ale funkcja NOW() w MySQL, czyli moze `...data2 = NOW()...`


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
mysz
post
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 26.08.2006
Skąd: Szczecin

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


MySQL nie przechowuje (nie mówię o wnętrznościach) czasu w uniksowym znaczniku czasu. Pole typu TIMESTAMP ma swój format, dość oczywisty jak na niego spojrzysz. Do tego dołóż klauzulę ON UPDATE CURRENT_TIMESTAMP, i tutaj będzie śmigać.

Teraz jeśli chcesz odbierać tenże zapisany (uaktualniony) czas, to używaj funkcji UNIX_TIMESTAMP().


--------------------
urzenia.net
Go to the top of the page
+Quote Post
El Wieczor
post
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.05.2007

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


  1. ALTER TABLE `tabela` CHANGE `data1` `data1` INT( 15 ) UNSIGNED ON UPDATE CURRENT_TIMESTAMP


#1294 - Invalid ON UPDATE clause for 'data1' column

Jak to napisać? W dokumentacji nic nie znalazłem.
Go to the top of the page
+Quote Post
mysz
post
Post #5





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 26.08.2006
Skąd: Szczecin

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


Cytat(El Wieczor @ 20.05.2007, 19:31:12 ) *
  1. ALTER TABLE `tabela` CHANGE `data1` `data1` INT( 15 ) UNSIGNED ON UPDATE CURRENT_TIMESTAMP


#1294 - Invalid ON UPDATE clause for 'data1' column


A skąd żeś wpadł na pomysł że to ma być pole typu INT?

Cytat
Jak to napisać? W dokumentacji nic nie znalazłem.


A gdzie i jak szukałeś?


--------------------
urzenia.net
Go to the top of the page
+Quote Post
El Wieczor
post
Post #6





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.05.2007

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


Aj, tego INTa nie zauważyłem, bo miałem wcześniej czas przechowywany w znaczniku Unixa winksmiley.jpg
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: 22.08.2025 - 09:12