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

  • Автор темы Автор темы hash
  • Дата начала Дата начала

hash

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

Подскажите, пожалуйста, можно ли как-нить сделать, чтобы default для столбца типа datetime устонавливалось поумолчанию как текущие дата и время?
заранее спасибо.
 
hash в mysql есть фунция now(). Подставляй ее в нужное поле во время запроса.
 
кроме now() есть еще и current_timestamp.
Но если я пытаюсь написать:
`regdate` datetime NOT NULL default current_timestamp,
в результате получаем
`regdate` datetime NOT NULL default '0000-00-00 00:00:00'
а поповоду "зачем?"... я ж думаю, что это СУБД а не какой-то там ексель...
фиг с ним, что триггеров нету... дык ... вообще ничего толком сделать нльзя:(
 
совет от чира читать не надо.
поскольку этот совет показывает, как отслеживать момент ЛЮБОГО ИЗМЕНЕНИЯ строи, а не её создания.

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

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

Если нет возможности заработать пару центов на хостинг с другой субд - жалуйтесь на себя, а не на субд.
 
Фанат
если сделать 2 таймстампа, то будет и создание и изменение.
 
hash
ну конечно. субд тебе неудачная, фанат злой.
один ты белый и пушистый.
Demiurg, мне не надо два таймстампа. и ему - тоже не надо.
 
та мне не нужно изменение......
придется таки в запросе писать.
 
Фанат
если не надо два темплейта, то будет не "время изменения", в "время изменения, когда я не забыл поставить в запросе now()"
 
не изменения, а создания.
Как я уже неоднократно упоминал, по своей сути SQL-запрос - это программный код. Ты пишешь в скрипте скелет запроса, который наполняется данными.

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

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

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

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