ON UPDATE CURRENT_TIMESTAMP in migration

写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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值