Ответ 1
Вы не можете использовать CURDATE() в качестве значения по умолчанию.
Вместо этого вы можете использовать столбец TIMESTAMP с DEFAULT CURRENT_TIMESTAMP. Затем вам придется игнорировать часть времени.
Пример кода SQL:
CREATE TABLE dates
(
id int NOT NULL,
id_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
INSERT INTO dates (id) VALUES (1);
SELECT id, DATE(id_date) AS id_date FROM dates;
Результат:
id id_date 1 2010-09-12