![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 293 Pomógł: 4 Dołączył: 28.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem,
Posiadam tabelę, a w niej różne wartości w tym date dodania materiału. Utrzymuję ją w wartości timestamp. Domyślnie ma wartość NULL, podczas dodawania dopisuję ją parametrem now() w zapytaniu sql. Problem jest, gdy w phpmyadminie edytuje manualnie jakiś rekord. Za każdym razem phpmyadmin wyświetla mi w propozycji now... w liście nie moge również doszukać się wartości "keep old"... ![]() Czy ktoś ma jakiś pomysł co zrobić, abym mógł edytować wpisy w phpmyadminie bez resetowania daty przy każdej zmianie ? -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem jak ma się do tego phpmyadmin, ale wygląda na to, jakby timestamp jednak miał ustawione: default CURRENT_TIMESTAMP Może zapoznaj się z mysql-gui-tools, szczególnie z mysql query browser (co prawda eksportu czy zrzutu danych do pliku sql tym nie wykonasz, ale do edycji jest świetne)
![]() -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Ustawienie pola na typ TIMESTAMP powoduję automatyczną aktualizację tego pola przy każdej edycji rekordu niezależnie czy się uzywa do tego PMA czy innego skryptu/programu do zarządzania bazą
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czy przypadkiem TIMESTAMP nie jest po prostu typem daty.
Dopiero dodanie CURRENT_TIMESTAMP jako wartości domyślnej powoduje automatyczne dodanie aktualnego znacznika czasu przy dodawaniu pola. Spowodowanie, że wartość pola będzie aktuwalizowana przy każdej edycji można osiągnąć przez coś takiego: Może się mylę, poprawcie, jeśli tak. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Może się mylę, poprawcie, jeśli tak. To przeczytaj teraz doklanie to, a zrozumiesz co napisałemhttp://dev.mysql.com/doc/refman/5.0/en/timestamp.html ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
@nospor albo mnie zaraz zawstydzisz jak TurboDynoMen, albo jednak domyślnie pole TIMESTAMP się nie aktualizuje.
Zrobiłem test na MySQL 5.0.51b i bez ustalenia domyślnej wartości po dodaniu rekordu w polu nic nie ma, a bez ustalenia ON UPDATE CURRENT_TIMESTAMP po edycji rekordu też nic się nie dzieje. Poza tym w manualu, który przytoczyłeś jest napisane: Cytat With a DEFAULT CURRENT_TIMESTAMP clause and no ON UPDATE clause, the column has the current timestamp for its default value but is not automatically updated. Ustawienie pola na typ TIMESTAMP powoduję automatyczną aktualizację tego pola przy każdej edycji rekordu niezależnie czy się uzywa do tego PMA czy innego skryptu/programu do zarządzania bazą ![]() Więc chyba jednak nie jest tak jak piszesz ![]() -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Ok, wprowadziłem nieco w błąd. Zapomniałem że zyjemy w czasach mysql 5
![]() Moje doświadczenie z TIMESTAMP miały miejsce za czasów mysql 4 i tam było jak mówiłem. Jeśli autor tematu ma też mysql 4 to by wiele wyjaśniało ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Polecam zmianę pól timestamp na datetime, format ten sam, a może być null i nie ma takich problemów (po za tym datetime nie wygasa za ileś tam lat, jak timestamp)
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 28.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Odkopię bo może się przydać dla potomnych, sam ten problem chciałem rozwiązać i znalazłem to.
Takie zachowanie phpMyAdmina jest konfigurowalne libraries/config.default.php Kod /** * Default functions for above defined groups * * @global array $cfg['DefaultFunctions'] */ $cfg['DefaultFunctions'] = array( 'FUNC_CHAR' => '', 'FUNC_DATE' => '', 'FUNC_NUMBER' => '', 'first_timestamp' => 'NOW', 'pk_char36' => 'UUID', ); Wystarczy wywalić 'NOW' |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:11 |