нужно сделать таблицу с полями
create_date и update_date
при этом хочется, чтобы defaultовое значение обоих было now() или CURRENT_TIMESTAMP
При этом при обновлении данных в таблице (других полей помимо этих) только update_date самостоятельно обновлялось на новую дату (now() или CURRENT_TIMESTAMP)
Уважаемые знатоки и любители мускула, ответьте мне,
1 - какими типами должны быть поля create_date и update_date
2 - что им нужно поставить по умолчанию
3 - если нужен триггре, то прошу пример синтаксиса.
Примечание.
я то сама пробовала сделать create_date и update_date оба типом timestamp или datetime и обоим пробовала дать поумолчанию значение как now() так и CURRENT_TIMESTAMP.
Ругается, мол низя 2 таймстампа так делать, или мол инвалид чо-то там.
Пробовала создать триггер
BEGINРугается снова что-то с синтаксисом не то :( в доке походящий пример ищу. Так мало проблем с триггером, так ещё и пользователя нужно выбрать. ЭЭЭх, когда беде переносить со своего компа на хостерский тут сто пудов будут косяки.
NEW.update_date := NOW(); // CURRENT_TIMESTAMP
return NEW;
END
В итоге решила написать сюда. Помогите, пожалуйста.
Спустя 16 минут, 52 секунды (12.07.2011 - 12:56) waldicom написал(а):
Примерно вот так:
create table ...
.....,
`update_date` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
.....
Спустя 13 минут, 9 секунд (12.07.2011 - 13:10) olgatcpip написал(а):
Ругается.
Дабы было более красочно, чем я объясняю, да и понятнее будет на картинке
Ругается, на то, что нелья 2 поля делать timestamp с автозанчанием now()
Дабы было более красочно, чем я объясняю, да и понятнее будет на картинке
Ругается, на то, что нелья 2 поля делать timestamp с автозанчанием now()
Спустя 2 минуты, 45 секунд (12.07.2011 - 13:12) tatti написал(а):
как вариант create_date переделать в date без времени
Спустя 5 минут, 3 секунды (12.07.2011 - 13:17) olgatcpip написал(а):
tatti
дразнишь что ли?
нужно именно 2 даты: одна дата создания, вторая дата последней модификации!
дразнишь что ли?
нужно именно 2 даты: одна дата создания, вторая дата последней модификации!
Спустя 6 минут, 44 секунды (12.07.2011 - 13:24) waldicom написал(а):
Да, такая колонка может быть всего одна, это ограничение mysql
Спустя 2 минуты, 15 секунд (12.07.2011 - 13:26) tatti написал(а):
Цитата (waldicom @ 12.07.2011 - 10:24) |
Да, такая колонка может быть всего одна, это ограничение mysql |
чушь. никакого такого ограничения нет
единственное ограничение - что модифицировать можно только одно из них

Спустя 3 минуты, 24 секунды (12.07.2011 - 13:30) olgatcpip написал(а):
tatti ну не знаю. это единственный тип, у которого есть значение по умолчанию.
я сейчас то что на постгресе написано, переношу в мускул, не то чтобы сильно хочется. надо. так вот есть вот эта заноза. php кодом делать/обновлять эти даты совсем не кочется.
waldicom
Как сделать триггер? что в моем не верно?
я сейчас то что на постгресе написано, переношу в мускул, не то чтобы сильно хочется. надо. так вот есть вот эта заноза. php кодом делать/обновлять эти даты совсем не кочется.
waldicom
Как сделать триггер? что в моем не верно?
Спустя 4 минуты, 8 секунд (12.07.2011 - 13:34) tatti написал(а):
для неверных

Спустя 3 минуты, 47 секунд (12.07.2011 - 13:38) killer8080 написал(а):
olgatcpip
можно поле с датой обновления сделать как предложил waldicom, а в инсерт запросах, для поля с датой добавления, прописать NOW().
можно поле с датой обновления сделать как предложил waldicom, а в инсерт запросах, для поля с датой добавления, прописать NOW().
Спустя 11 минут, 50 секунд (12.07.2011 - 13:50) olgatcpip написал(а):
Поторопилась, я ....
Не дает откомпилировать. вопрос открыт
Не дает откомпилировать. вопрос открыт

Спустя 1 минута, 25 секунд (12.07.2011 - 13:51) tatti написал(а):
olgatcpip
перечитай
можно хоть 10 значений timestamp в одной таблице держать, а вот обновлять их вместе нельзя.
перечитай
можно хоть 10 значений timestamp в одной таблице держать, а вот обновлять их вместе нельзя.
Спустя 11 минут, 49 секунд (12.07.2011 - 14:03) olgatcpip написал(а):
ну дык, postgresql же может, значит и мускул должен уметь делать аналогичное. Не исключено, что и через триггер...
Здесь кто-нибудь писал триггер для мускула?
Здесь кто-нибудь писал триггер для мускула?
Спустя 7 минут, 7 секунд (12.07.2011 - 14:10) killer8080 написал(а):
а так не подходит
UPD
имелось ввиду при такой структуре таблицы
INSERT INTO `some_table` (`id`, `text`, `insert_date`, `update_date`) VALUES (NULL, 'inserted text', NOW(), NULL)
UPDATE `some_table` SET `text`='updated text' WHERE `id`=1
UPD
имелось ввиду при такой структуре таблицы
CREATE TABLE `some_table` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`text` TEXT,
`update_date` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL ,
`insert_date` TIMESTAMP,
PRIMARY KEY ( `id` )
)
Спустя 5 минут, 7 секунд (12.07.2011 - 14:15) olgatcpip написал(а):
Нет, так конечно прокатит.
Но дело то не в этом.
Нужно чтоб не нужно было писать в запросе update и insert now() или CURRENT_TIMESTAMP
Оно и само может обновляться без наших лишних символов в запросе.
1 - через типы и дефолтовые значения, как в постгресе, возможно в мускуле есть, может и нет. Возможно типы не те вставляю, может не now()/CURRENT_TIMESTAMP писать нужно, может тип таблицы другой нужен.... мжет кто делал такое?
2 - через триггер то точно должно получиться. вот я и спрашиваю "Кто-нибудь делал, писал триггер под мускул?"
Но дело то не в этом.
Нужно чтоб не нужно было писать в запросе update и insert now() или CURRENT_TIMESTAMP
Оно и само может обновляться без наших лишних символов в запросе.
1 - через типы и дефолтовые значения, как в постгресе, возможно в мускуле есть, может и нет. Возможно типы не те вставляю, может не now()/CURRENT_TIMESTAMP писать нужно, может тип таблицы другой нужен.... мжет кто делал такое?
2 - через триггер то точно должно получиться. вот я и спрашиваю "Кто-нибудь делал, писал триггер под мускул?"
_____________
Ласковое слово и кошке приятно... Плюсик в карму сойдет wink.gif
*smarty дока - новая любовь
Моё рукотворение ругайте, хвалите smile.gif
Веду маленький блог
в этом блоге публикую новые работы
WMR217126627282 wink.gif