Mam taku dilemu. V knhe o optimalizacii MySQL som cital, ze TIMESTAMP zaberie zhruba polovicu prostriedkov oproti formatu DATETIME pri ukladani datumu a csu v databaze. To sa hodi napr pri prispevkoch vo fore, ktorych sa casom nazbiera dost a vtedy sa uz da hovorit o optimalizacii.
Ale o TIMESTAMP mam trochu skreslene predstavy, nieco som googlil a mam chaos v tom, ake je pouzitie.
Chcem hlavne vediet, ako je to s aktualizaciou zaznamu vo formate TIMESTAMP. Nie je to tak, ze ked menim v danom riadku akykolvek udaj, zmeni sa v tom riadku automaticky aj TIMESTAMP na aktualnu hodnotu? Logicky by nemalo, ak to explicitne nie je v prikaze, ale chcem sa uistit, kym zacnem prepisovat zdrojaky na tvorbu tabuliek.
MySQL: TIMESTAMP namiesto DATETIME pri ukladani datumov
-
pheo
Light Star
- Príspevky: 212
- Registrovaný: 20 sep 2005, 16:53
- Bydlisko: moje hniezdo
- Kontaktovať používateľa:
Re: MySQL: TIMESTAMP namiesto DATETIME pri ukladani datumov
JA si myslím že tie timestap sa nezmenia pri update, inak nic nedas ak si to odskusas na nejakej stupidnej tabulke o dvoch, troch stlpcoch
-
__construct
Medium Expert
- Príspevky: 108
- Registrovaný: 23 sep 2009, 9:32
- Bydlisko: Dark Side of The Moon
- Kontaktovať používateľa:
Re: MySQL: TIMESTAMP namiesto DATETIME pri ukladani datumov
Pokiaľ tam nedáš toto:
tak sa ti to po update samo neaktualizuje ..
Čo sa týka toho DATETIME (ja používam to):
Ak chceš použiť DATETIME tak jednoducho dám pri INSERTE aktuálny čas cez funkciu NOW()..
Kód: Vybrať všetko
..TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP..Čo sa týka toho DATETIME (ja používam to):
Ak chceš použiť DATETIME tak jednoducho dám pri INSERTE aktuálny čas cez funkciu NOW()..
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: MySQL: TIMESTAMP namiesto DATETIME pri ukladani datumov
http://stackoverflow.com/questions/4092 ... -timestampTimestamps in MySQL generally used to track changes to records, and are updated every time the record is changed. If you want to store a specific value you should use a datetime field.
If you meant that you want to decide between using a UNIX timestamp or a native MySQL datetime field, go with the native format. You can do calculations within MySQL that way ("SELECT DATE_ADD(my_datetime, INTERVAL 1 DAY)") and it is simple to change the format of the value to a UNIX timestamp ("SELECT UNIX_TIMESTAMP(my_datetime)") when you query the record if you want to operate on it with PHP.
-
pheo
Light Star
- Príspevky: 212
- Registrovaný: 20 sep 2005, 16:53
- Bydlisko: moje hniezdo
- Kontaktovať používateľa:
Re: MySQL: TIMESTAMP namiesto DATETIME pri ukladani datumov
no zas som sa nieco naucil 
toto je docela metúca vlastnosť mysql, kedže na podobné srandy väčšinou slúžia aktívne prvky = trigger
toto je docela metúca vlastnosť mysql, kedže na podobné srandy väčšinou slúžia aktívne prvky = trigger
-
__construct
Medium Expert
- Príspevky: 108
- Registrovaný: 23 sep 2009, 9:32
- Bydlisko: Dark Side of The Moon
- Kontaktovať používateľa:
Re: MySQL: TIMESTAMP namiesto DATETIME pri ukladani datumov
STACKOVERFLOW SUX
Kód: Vybrať všetko
http://dev.mysql.com/doc/refman/5.1/en/timestamp.htmlWith 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.