MySQL синтаксис для установки даты по умолчанию - PullRequest
1 голос
/ 30 октября 2009

Как мы можем установить элемент на некоторую дату по умолчанию в MySQL?

  • В оракуле мы бы сделали что-то вроде

    start_date DATE DEFAULT to__date ('01011900', 'DDMMYYYY')

    mutation_date_time DATE DEFAULT SYSDATE

    CONSTRAINT entity_specification UNIQUE (external_name, start_date_time, end_date_time))

Также есть ли у нас какой-либо сайт или ресурс, где мы можем получить синтаксис, эквивалентный MySQL, синтаксису Oracle.

Обновление

Я пытался сделать, как указано в ответе, но снова получаю сообщение об ошибке:

    create table product_offer_type(object_id INT(19), snapshot_id INT(19), PRIMARY KEY(object_id,snapshot_id), enum_value VARCHAR(64) NOT NULL, external_name VARCHAR(64) NOT NULL, description VARCHAR(255), business_validation INT(1), valid_for_start_date_time DATE DEFAULT '1900-01-10', valid_for_end_date_timeDATE DEFAULT '4712-01-01', mutation_date_time DATE DEFAULT 'SYSDATE()', mutation_user VARCHAR(32) DEFAULT 'USER');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT '4712-01-01', mutation_date_time DATE DEFAULT 'SYSDATE()', mutation_user' at line 1
mysql>

Ответы [ 2 ]

2 голосов
/ 30 октября 2009

Для фиксированной даты по умолчанию в поле ДАТА используется формат «ГГГГ-ММ-ДД», например start_date DATE DEFAULT '2009-10-30'. DATETIME будет «ГГГГ-ММ-ДД ЧЧ: ММ: СС».

Для динамической даты, основанной на текущей дате, вы можете использовать DEFAULT CURRENT_TIMESTAMP, если вы используете поле TIMESTAMP ; в противном случае невозможно использовать функцию в качестве ПО УМОЛЧАНИЮ в MySQL. Поля TIMESTAMP отформатированы как «ГГГГ-ММ-ДД ЧЧ: ММ: СС». В противном случае вам нужно будет получить текущую дату в своем коде, прежде чем вставлять данные.

2 голосов
/ 30 октября 2009

Просто передайте форматированную строку.

start_date DATE DEFAULT '1900-01-01'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...