在MySQL中将时间戳列的默认值设置为2时间戳的总和?

Vunguyenhung

我已经在mySQL中创建了一个表,如下所示:

CREATE TABLE IF NOT EXISTS `LibraryManager`.`Card` (
  `card_id` INT NOT NULL AUTO_INCREMENT,
  `card_registerDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `card_expiredDate` TIMESTAMP,
  PRIMARY KEY (`card_id`))
ENGINE = InnoDB;

现在,我想将默认值设置card_expiredDatecard_registerDate+ 30或CURRENT_TIMESTAMP + 30(从注册日期起30天)。有什么办法吗?非常感谢您阅读本文。

谢克·乔希

不能使用create语句设置到期列的默认值,而是使用触发器。为此,您将不得不稍微修改您的create语句。只需更改到期列的数据类型,即您的新查询:

CREATE TABLE IF NOT EXISTS `LibraryManager`.`Card` (
`card_id` INT NOT NULL AUTO_INCREMENT,
`card_registerDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`card_expiredDate` DATETIME,
PRIMARY KEY (`card_id`))
ENGINE = InnoDB;

然后触发以下触发器

CREATE TRIGGER before_insert_library_card
BEFORE INSERT ON `LibraryManager`.`Card` 
FOR EACH ROW
SET new.card_expiredDate = adddate(CURRENT_TIMESTAMP,30);

希望这可以帮助。

PS:触发器会减慢插入操作(或在插入之前/之后执行的任何操作)的速度。我建议您使用php / python或您正在使用的任何后端以编程方式设置这些值。

有关的:

我可以在MySql中使用函数作为默认值吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在MySQL中将时间戳列的默认值设置为2时间戳的总和?

来自分类Dev

时间戳列的默认值无效

来自分类Dev

MySQL没有默认值时,时间戳的默认值无效。

来自分类Dev

Doctrine2-类型时间戳-默认值

来自分类Dev

Doctrine2-类型时间戳-默认值

来自分类Dev

如何在更新过程中将空值设置为QueryDSL时间戳列?

来自分类Dev

在Ecto迁移中将当前时间的默认值设置为datetime列

来自分类Dev

将列设置为MySql工作台中的时间戳?

来自分类Dev

选择MySQL数据并根据时间戳列设置变量的值

来自分类Dev

Liquibase和MySQL 5.7时间戳列修改问题

来自分类Dev

MySQL是否具有13位时间戳列类型?

来自分类Dev

更改sqlite表以添加带有默认值的时间戳列

来自分类Dev

Laravel 4时间戳格式

来自分类Dev

如何从MS Access查询DB2时间戳值?

来自分类Dev

如何在phpMyAdmin中将默认时间戳设置为+1个月

来自分类Dev

是否可以在PostgreSQL中数据类型为time的列中将当前时间设置为默认值?

来自分类Dev

PHP-想要将MySQL时间戳时间转换为UTC +6时间

来自分类Dev

如何在时间戳中将秒设置为00?

来自分类Dev

如何检查mysql数据类型是否为带有默认值“ 0000-00-00 00:00”的时间戳?

来自分类Dev

Rails:将列默认设置为created_at时间戳

来自分类Dev

如何在angularjs表单字段中将日期和时间设置为默认值

来自分类Dev

在RadDatePicker中将当前PC日期和时间设置为默认值

来自分类Dev

更新MySQL列时间戳

来自分类Dev

SQL-将列值类型设置为final-不可更改的时间戳编辑

来自分类Dev

SQL-将列值类型设置为final-不可更改的时间戳编辑

来自分类Dev

DB2将ISO 8601时间戳字符串转换为DB2时间戳

来自分类Dev

将红宝石日期显示为RFC 3339时间戳

来自分类Dev

将红宝石日期显示为RFC 3339时间戳

来自分类Dev

在创建连接池时为mysql配置时间戳

Related 相关文章

  1. 1

    在MySQL中将时间戳列的默认值设置为2时间戳的总和?

  2. 2

    时间戳列的默认值无效

  3. 3

    MySQL没有默认值时,时间戳的默认值无效。

  4. 4

    Doctrine2-类型时间戳-默认值

  5. 5

    Doctrine2-类型时间戳-默认值

  6. 6

    如何在更新过程中将空值设置为QueryDSL时间戳列?

  7. 7

    在Ecto迁移中将当前时间的默认值设置为datetime列

  8. 8

    将列设置为MySql工作台中的时间戳?

  9. 9

    选择MySQL数据并根据时间戳列设置变量的值

  10. 10

    Liquibase和MySQL 5.7时间戳列修改问题

  11. 11

    MySQL是否具有13位时间戳列类型?

  12. 12

    更改sqlite表以添加带有默认值的时间戳列

  13. 13

    Laravel 4时间戳格式

  14. 14

    如何从MS Access查询DB2时间戳值?

  15. 15

    如何在phpMyAdmin中将默认时间戳设置为+1个月

  16. 16

    是否可以在PostgreSQL中数据类型为time的列中将当前时间设置为默认值?

  17. 17

    PHP-想要将MySQL时间戳时间转换为UTC +6时间

  18. 18

    如何在时间戳中将秒设置为00?

  19. 19

    如何检查mysql数据类型是否为带有默认值“ 0000-00-00 00:00”的时间戳?

  20. 20

    Rails:将列默认设置为created_at时间戳

  21. 21

    如何在angularjs表单字段中将日期和时间设置为默认值

  22. 22

    在RadDatePicker中将当前PC日期和时间设置为默认值

  23. 23

    更新MySQL列时间戳

  24. 24

    SQL-将列值类型设置为final-不可更改的时间戳编辑

  25. 25

    SQL-将列值类型设置为final-不可更改的时间戳编辑

  26. 26

    DB2将ISO 8601时间戳字符串转换为DB2时间戳

  27. 27

    将红宝石日期显示为RFC 3339时间戳

  28. 28

    将红宝石日期显示为RFC 3339时间戳

  29. 29

    在创建连接池时为mysql配置时间戳

热门标签

归档