Синтаксическая ошибка начинающего MySQL

Я пытаюсь создать таблицу в уже созданной базе данных. Я уже переключился на базу данных, используя USE church_fpip, Вот мой код для создания новой таблицы, но по некоторым причинам кажется, что ZEROFILL создает синтаксическую ошибку.

mysql> CREATE TABLE sermons (
    ->   id INT NOT NULL AUTO_INCREMENT,
    ->   year INT(4) NOT NULL,
    ->   month INT(2) NOT NULL ZEROFILL,
    ->   day INT(2) NOT NULL ZEROFILL,
    ->   title VARCHAR(50) NOT NULL,
    ->   preacher VARCHAR(30) NOT NULL,
    ->   length INT(3) NOT NULL,
    ->   visible TINYINT(1) NOT NULL,
    ->   PRIMARY KEY (id)
    -> );
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 'ZEROFILL,
  day INT(2) NOT NULL ZEROFILL,
  title VARCHAR(50) NOT NULL,
  preach' at line 4

2 ответа

Решение

Я думаю ZEROFILL должно быть раньше NOT NULL такие как

 month INT(2) ZEROFILL NOT NULL,
 day INT(2) ZEROFILL NOT NULL,

Однако я бы порекомендовал использовать DATETIME для того, что вы пытаетесь сделать, вместо трех столбцов, представляющих день / месяц / год.

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

Другие вопросы по тегам