Я хочу добавить + 1 день к текущей отметке времени , когда новая запись вставляется в таблицу.Хотя обычно я делаю это в PHP, добавляя время перед вставкой, я хочу попробовать использовать MySQL и установить эту метку времени в качестве значения по умолчанию .Я пытался сделать следующее:
TIMESTAMPADD(DAY,1,CURRENT_TIMESTAMP)
![enter image description here](https://i.stack.imgur.com/LwyVe.jpg)
Executing SQL script in server
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'TIMESTAMPADD(DAY,1,CURRENT_TIMESTAMP) COMMENT 'Timestamp request token time',
' at line 8
SQL Code:
-- -----------------------------------------------------
-- Table `new_db`.`reset_tokens`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `new_db`.`reset_tokens` (
`reset_id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Reset ID',
`users_user_id` INT UNSIGNED NOT NULL COMMENT 'FK User ID',
`user_reset_token` CHAR(30) NULL COMMENT 'Reset character string (30)',
`user_ts_expiration` TIMESTAMP NOT NULL DEFAULT TIMESTAMPADD(DAY,1,CURRENT_TIMESTAMP) COMMENT 'Timestamp request token time',
PRIMARY KEY (`reset_id`, `users_user_id`),
UNIQUE INDEX `user_reset_token_UNIQUE` (`user_reset_token` ASC),
INDEX `fk_reset_tokens_users1_idx` (`users_user_id` ASC),
CONSTRAINT `fk_reset_tokens_users`
FOREIGN KEY (`users_user_id`)
REFERENCES `new_db`.`users` (`user_id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
COMMENT = 'Reset tokens / forget password'
Я не совсем уверен, почему это не работает, номожет быть, это просто неправильный способ сделать это.Любые / лучшие альтернативы высоко ценятся.
РЕДАКТИРОВАТЬ
Итак, я проверил "Target MySQL version" и он сказал "8.0.16" (движок InnoDB).Дело в том, что изменение его, например, на 10.1.34 создает целый ряд новых проблем.
РЕДАКТИРОВАТЬ 2 Я изменил версию на 10.1.34 и решил некоторые проблемы, но в отношении TIMESTAMPADD(DAY,1,CURRENT_TIMESTAMP)
, все равно выдает ту же ошибку (не имеет значения, когда я пытаюсь CURRENT_TIMESTAMP()
).
Позвольте мне прояснить, я не пытаюсь SELECT
, я хочу установить егокак DEFAULT
значение.