Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / default 'now()' в create / 6 сообщений из 6, страница 1 из 1
19.08.2002, 17:09
    #32044325
camka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default 'now()' в create
Как по умолчанию задать текущую дату в нужное поле?
пишу
create table table1
(
...
createdate datetime default 'now()',
...
);

при вставке поля без явного указания createdate вставляется значение 0000-00-00 00:00:00
...
Рейтинг: 0 / 0
20.08.2002, 01:37
    #32044387
GuestZZZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default 'now()' в create
Вот так -- работает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
use test;
drop table one;

create table one (
id int primary key auto_increment,
name varchar( 255 ),
d TIMESTAMP NOT NULL DEFAULT 'NOW()'
);

insert into one (name) values('vasya');
insert into one (name) values('vasya');
insert into one (name) values('vasya');
...
Рейтинг: 0 / 0
20.08.2002, 01:39
    #32044388
GuestZZZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default 'now()' в create
Э-э... Дело в типе поля. То есть, если поле типа DATETIME, njulf NOW() работать не будет, а вот если -- TIMESTAMP, тогда будет.
...
Рейтинг: 0 / 0
21.08.2002, 10:29
    #32044818
camka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default 'now()' в create
спасибо. а почему с типом datetime всё-таки не работает?
...
Рейтинг: 0 / 0
24.09.2002, 05:37
    #32052531
vi.k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default 'now()' в create
Ни с тем ни с тем не работает.

Поле TIMESTAMP сохраняет время последней модификации записи, а не его создания. Так что тебя может ожидать впереди очень много инетересного... :-)

MySQL не поддерживает функции в качестве DEFAULT значения, только константы.

При вставке сам вставляй:
Код: plaintext
INSERT ... SET createdate=CURDATE()
...
Рейтинг: 0 / 0
24.09.2002, 05:46
    #32052532
vi.k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default 'now()' в create
А вот это вообще гениально :-)))

Код: plaintext
d TIMESTAMP NOT NULL DEFAULT 'NOW()'


Работать может по одной простой причине - если в поле TIMESTAMP вставлять значение, которое нельзя распознать как TIMESTAMP.

Хотя не знаю, как это он не ругнулся.

Рекомендую после проведённой операции сделать
Код: plaintext
SHOW CREATE TABLE ...
и посмотреть
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / default 'now()' в create / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]