#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, используйте один или другой, а не оба.
Комментарии:
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, вы должны выбрать один.