写rails的ruby程序员,很少有知道ON UPDATE CURRENT_TIMESTAMP这样的东西,他们根本不需要。
但是如果是单独使用rails的migration,在php项目或者是nodejs项目,比如
我们就需要用到这个方便的ON UPDATE CURRENT_TIMESTAMP。
class CreateLevelWeights < ActiveRecord::Migration def change create_table(:level_weights, options: "ENGINE=MyISAM DEFAULT CHARSET=utf8") do |t| t.timestamps t.integer :inviter_lv_id, null:false, comment: '邀请人所处的等级id' t.integer :order, null:false, comment: '邀请的阶段' t.integer :lv_id, null:false, comment: '等级id' t.integer :weight, null:false, comment: '权重' end add_index(:level_weights, [:inviter_lv_id, :order, :lv_id], :unique => true) sql_auto_update = 'ALTER TABLE `level_weights` '+\ 'CHANGE COLUMN `created_at` `created_at` TIMESTAMP NOT NULL DEFAULT "2015-01-01 00:00:01", ' +\ 'CHANGE COLUMN `updated_at` `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;' execute sql_auto_update end end
class CreateLevels < ActiveRecord::Migration def change create_table(:levels, options: "ENGINE=MyISAM DEFAULT CHARSET=utf8") do |t| t.timestamps t.string :code, limit:30, null:false, comment:'等级代码' t.string :name, limit:30, comment:'等级名称' t.integer :queue, null:false, comment:'等级队列' t.boolean :is_del, default:false, comment:'是否已被删除' end add_index(:levels, :queue, :unique => true) sql_auto_update = 'ALTER TABLE `levels` ' +\ 'CHANGE COLUMN `created_at` `created_at` TIMESTAMP NOT NULL DEFAULT "2015-01-01 00:00:01", ' +\ 'CHANGE COLUMN `updated_at` `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;' execute sql_auto_update end end
相关推荐
此外,MySQL允许在一个表中最多定义两个自动更新的`TIMESTAMP`字段,其中一个可以设置为`CURRENT_TIMESTAMP`作为默认值,另一个可以设置为`ON UPDATE CURRENT_TIMESTAMP`,这样在插入新行或更新行时,这两个字段都会...
Timestamp在MySQL中有两种常见的特殊属性:默认值为CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP。 1. 默认值Default CURRENT_TIMESTAMP: 当你在创建表时,为Timestamp字段设置默认值为CURRENT_TIMESTAMP,这...
这样,无论何时更新表`ts`中的任何行,`modified`字段都会自动更新为当前时间,就像MySQL中的`ON UPDATE CURRENT_TIMESTAMP`特性一样。通过使用触发器,你可以在PostgreSQL中模拟出类似的行为。
ON UPDATE CURRENT_TIMESTAMP 表示每次更新这条数据的时候,该字段都会更新成当前时间 这两个操作是mysql数据库本身在维护,所以可以根据这个特性来生成【创建时间】和【更新时间】两个字段,且不需要代码来维护 ...
there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause.`。 解决这个问题的一种方法是将`lastUpdated`列从`TIMESTAMP`类型改为`DATETIME`类型,并创建一个触发器来实现...
这个压缩文件包含了2个.sql文件(还有1个sql命令参考),由MySQL Workbench生成,包含了144790个单词的释义、注音(少...update_time datetime YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间' ); ``` 注意,对于不同版本的MySQL,对默认值为`CURRENT_TIMESTAMP`的支持有所不同。在MySQL 5.5...
此外,需要注意的是,从MySQL 5.6.5版本开始,可以设置多个字段的默认值为`CURRENT_TIMESTAMP`,但只有一个可以设置为`ON UPDATE CURRENT_TIMESTAMP`,这意味着只有这个字段会在记录更新时自动更新。如果你想要在多...
`begin_time` timestamp NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312; ``` 在上面的示例中,我们创建了一个名为 `test_mysql_...
不错的哦create database book DEFAULT ... posttime timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, flag tinyint ) ; insert into news values(10,'my', 'my','my','2011-1-1','1');
请求方式:GET 请求参数:text ...放上服务器就可以使用,简单无脑 ...CREATE TABLE IF NOT EXISTS short_plays ( id INT(6) UNSIGNED ... reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )
当你在表定义中指定`DEFAULT CURRENT_TIMESTAMP`和`ON UPDATE CURRENT_TIMESTAMP`时,`TIMESTAMP`字段会自动被初始化为插入行时的时间戳,并在每次更新该行时自动更新为当前时间戳。 `CURRENT_TIMESTAMP`是MySQL中...
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`province_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` 接下来,`sys_city.sql`可能是城市级别的数据表...
【内容】t100w.sql 以及创建的sql语句,自己修改可以生成1000w... `dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; ``` 在这个例子中,`create_...
DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP每张表最多可以使用在一个TIMESTAMP列上而且不能和另一个TIMESTAMP列一起使用。 要求 支持jdk7及之后的版本 MySql 功能 自定义要生成的日期列的名称 自动...
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', `create_user` varchar(30) DEFAULT NULL COMMENT '创建人', `modify_user` varchar(30) DEFAULT NULL ...
VALUES CURRENT_TIMESTAMP + 1 MONTHS - DAY(CURRENT_DATE) DAYS; ``` - **获取上个月第一天**: ```sql SELECT LAST_DAY(SYSDATE - 1 MONTH) + 1 DAY FROM sysibm.sysdummy1; ``` - **获取三个月前的日期**...