default для столбца datetime

hash

Guest
default для столбца datetime

Подскажите, пожалуйста, можно ли как-нить сделать, чтобы default для столбца типа datetime устонавливалось поумолчанию как текущие дата и время?
заранее спасибо.
 

Кром

Новичок
hash в mysql есть фунция now(). Подставляй ее в нужное поле во время запроса.
 

hash

Guest
кроме now() есть еще и current_timestamp.
Но если я пытаюсь написать:
`regdate` datetime NOT NULL default current_timestamp,
в результате получаем
`regdate` datetime NOT NULL default '0000-00-00 00:00:00'
а поповоду "зачем?"... я ж думаю, что это СУБД а не какой-то там ексель...
фиг с ним, что триггеров нету... дык ... вообще ничего толком сделать нльзя:(
 

Фанат

oncle terrible
Команда форума
совет от чира читать не надо.
поскольку этот совет показывает, как отслеживать момент ЛЮБОГО ИЗМЕНЕНИЯ строи, а не её создания.

вообще ничего толком сделать нльзя
для нытья лучше ходить в церковь.
никакой проблемы при составлении запроса написать одну функцию НЕ СОСТАВЛЯЕТ.

Принципиально никакой разницы - в описании таблицы или в описании запроса писать время.

Если нет возможности заработать пару центов на хостинг с другой субд - жалуйтесь на себя, а не на субд.
 

Demiurg

Guest
Фанат
если сделать 2 таймстампа, то будет и создание и изменение.
 

Фанат

oncle terrible
Команда форума
hash
ну конечно. субд тебе неудачная, фанат злой.
один ты белый и пушистый.
Demiurg, мне не надо два таймстампа. и ему - тоже не надо.
 

hash

Guest
та мне не нужно изменение......
придется таки в запросе писать.
 

Demiurg

Guest
Фанат
если не надо два темплейта, то будет не "время изменения", в "время изменения, когда я не забыл поставить в запросе now()"
 

Фанат

oncle terrible
Команда форума
не изменения, а создания.
Как я уже неоднократно упоминал, по своей сути SQL-запрос - это программный код. Ты пишешь в скрипте скелет запроса, который наполняется данными.

То есть, событие "когда не забыл" просто не существует.
Или ты забыл в программе функцию написать, или не забыл.
То есть, оно либо будет писаться всегда, либо никогда.

Об этом я и говорю. нау() писать - на недо помнить. Написать надо один раз.

Точно так же можно дефолт поставить забыть
 

Demiurg

Guest
Ты говоришь об идеальных программистах, которых не существует. Программисты, которые являются людьми, имеют обыкновение многое забывать. И если есть возможности ограничить некие вещи на этапе проектирование, то это лучше сделать один раз и не пологаться на память программиста.

Вот например, те же константы, без них вполне можно обойтись, просто использовать переменные, однако практически во всех языках они есть, и мы с радостью используем.
 

Фанат

oncle terrible
Команда форума
по мне - так таймстамп вносит больше неопределенности.
забыть нау - это забыть функцию.
а два таймстампа когда нам нужно всего лишь время создания - это кривое проектирование, хак, военная хитрость.
Хотя, конечно, вопрос разговору не стоит.
 

AnToXa

prodigy-одаренный ребенок
совет от чира читать не надо.
поскольку этот совет показывает, как отслеживать момент ЛЮБОГО ИЗМЕНЕНИЯ строи, а не её создания.
Все зависит от того какую версию MySQL он использует. Начиная с 4.1 можно отслеживать как момент создания, так и момент любого изменения в зависимости от того с какими аттрибутами создан TIMESTAMP.
 
Сверху