INSERT INTO `articles` (`id`, `author_id`, `name`, `text`, `created_at`) VALUES (NULL, '1', 'Статья о том, как я погулял', 'Шёл я значит по тротуару, как вдруг...', CURRENT_TIMESTAMP);
INSERT INTO `articles` (`id`, `author_id`, `name`, `text`, `created_at`) VALUES (NULL, '1', 'Пост о жизни', 'Сидел я тут на кухне с друганом и тут он задал такой вопрос...', CURRENT_TIMESTAMP);
Выдает ошибку что поле id не может содержать величину NULL. вбил ручками 1,2 все заработало,
Возможно это зависит от версии базы? А если допустим у меня 200+ статей можно как то указать что бы он добавлял автоматом номера?
у меня при создании таблицы вылетает такая ошибка: "#1067 - Некорректное значение по умолчанию для 'created_at'"
при этом при удалении DEFAULT CURRENT_TIMESTAMP, все прекрасно работает и дата проставляется корректно. Понять не могу, в чем подвох. Сижу через open server, в настройках MySQL/MariaDB установлен MySQL-5.5-x64
Уважаемый автор доброго времени суток, я хотел бы увидеть пример кода для работы с датой и временем, я имею ввиду как сравнивать 2 даты и сохранять новую дату к примеру. Сайт по подписке на платный контент, который обновляется (продлевается) ежемесячно или еженедельно итд. Именно как правильно работать с датой как их сравнить и как сохранять в бд. Заранее спасибо.
Как в большинстве случаев в реальных проектах происходит взаимодействие с БД? Через PHPMyAdmin(через SQL запросы в PHPMyAdmin или там же, но через кнопочки готового графического интерфейса создания таблиц, полей и разных связей), через консоль? Помнить наизусть синтаксис запросов и их перечень, поначалу - достаточно сложно.
Вопрос преимущественно о первоначальном создании БД. В дальнейшем - то через PHP. Или инициализация БД с нуля через PHP - тоже часто используемая практика?
При создании таблицы можно выбрать DATETIME, а можно TIMESTAMP, оба можно определить по умолчанию, как CURRENT_TIMESTAMP. И на вид одинаковые в PhpMyAdmin. В чем отличия?
При добавлении записи
Выдает ошибку что поле id не может содержать величину NULL. вбил ручками 1,2 все заработало,
Возможно это зависит от версии базы? А если допустим у меня 200+ статей можно как то указать что бы он добавлял автоматом номера?
Значит вы не выставили Auto Increment.
у меня при создании таблицы вылетает такая ошибка: "#1067 - Некорректное значение по умолчанию для 'created_at'"
при этом при удалении DEFAULT CURRENT_TIMESTAMP, все прекрасно работает и дата проставляется корректно. Понять не могу, в чем подвох. Сижу через open server, в настройках MySQL/MariaDB установлен MySQL-5.5-x64
Это старый MySQL. Выбери 5.7
Уважаемый автор доброго времени суток, я хотел бы увидеть пример кода для работы с датой и временем, я имею ввиду как сравнивать 2 даты и сохранять новую дату к примеру. Сайт по подписке на платный контент, который обновляется (продлевается) ежемесячно или еженедельно итд. Именно как правильно работать с датой как их сравнить и как сохранять в бд. Заранее спасибо.
Привет. Почитай в официальной документации про DateTime
"created_at с типом DATETIME – тут будет храниться дата и время создания" - поправь в месте где говориться о создании таблицы для пользователей.
Спасибо, исправил
У меня вопрос на счёт запроса, почему при создании таблицы мы сразу не указываем AUTO_INCREMENT и PRIMARY KEY, а добавляем их через ALTER?
phpmyadmin так сгенерил, не вручную запрос составлял
Теперь понял.
Как в большинстве случаев в реальных проектах происходит взаимодействие с БД? Через PHPMyAdmin(через SQL запросы в PHPMyAdmin или там же, но через кнопочки готового графического интерфейса создания таблиц, полей и разных связей), через консоль? Помнить наизусть синтаксис запросов и их перечень, поначалу - достаточно сложно.
Вопрос преимущественно о первоначальном создании БД. В дальнейшем - то через PHP. Или инициализация БД с нуля через PHP - тоже часто используемая практика?
А как придется) Для изменения структуры таблицы применяются специальные инструменты для миграций, например https://www.doctrine-project.org/projects/migrations.html
При создании таблицы можно выбрать DATETIME, а можно TIMESTAMP, оба можно определить по умолчанию, как CURRENT_TIMESTAMP. И на вид одинаковые в PhpMyAdmin. В чем отличия?
https://stackoverflow.com/questions/31761047/what-difference-between-the-date-time-datetime-and-timestamp-types/56138746
В проекте используются только первичные ключи и юники. В каких случаях жизненно необходимо использовать внешние ключи?
Жизненной необходимости в них нет, но это своего рода подстраховка, чтобы если в одном месте данные исчезли, на них не было связей в других местах.