Дата и время запроса MySQL по умолчанию

#mysql

#mysql

Вопрос:

У меня есть приведенный ниже SQL-запрос, который, похоже, выдает ошибку, но я действительно застрял там, где находится синтаксическая ошибка. Я думаю, что это в field5, но я не уверен на 100%, правильно ли я использую datetime по умолчанию.

 CREATE TABLE mytable (field0 int(10) unsigned NOT NULL auto_increment primary key,
field2 DATETIME NOT NULL,
field3 int(1) unsigned default 0,
field4 int(10) NOT NULL,
field5 DATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL)
  

Может ли кто-нибудь, кто лучше разбирается в SQL, увидеть, где синтаксическая ошибка? 🙂

Спасибо

Ответ №1:

Поле 5 — ВРЕМЕННАЯ метка — это тип, как и DATETIME, используйте один или другой, а не оба.

http://dev.mysql.com/doc/refman/5.0/en/datetime.html

Комментарии:

1. это объясняет решение лучше, чем выбранный ответ. Я знаю, что Томми опубликовал первым, но я проголосовал за этот, потому что за него уже было голосование, и он должен быть ближе к началу.

Ответ №2:

 CREATE TABLE mytable30(
  `key` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  field2 DATETIME NOT NULL,
  field3 INT(1) UNSIGNED DEFAULT 0,
  field4 INT(10) NOT NULL,
  field5 TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
)
  

key Поле лучше переименовать.
INT (1) — должно ли это быть похоже на это INT (11)?

Ответ №3:

Вы не можете использовать Datetime и Timestamp, вы должны выбрать один.