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

 

 

HTTP状态 500 - 内部服务器错误 类型 异常报告 消息 在 [15] 行处理 [/list.jsp] 时发生异常 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 org.apache.jasper.JasperException: 在 [15] 行处理 [/list.jsp] 时发生异常 12: } 13: 14: int offset = (pageNum - 1) * pageSize; 15: List<Article> articles = articleDao.getArticles(offset, pageSize); 16: int totalArticles = articleDao.getTotalArticles(); 17: int totalPages = (int) Math.ceil((double) totalArticles / pageSize); 18: %> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:610) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:489) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:376) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:324) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 根本原因。 javax.servlet.ServletException: java.sql.SQLSyntaxErrorException: Unknown column 'create_at' in 'field list' org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:654) org.apache.jsp.list_jsp._jspService(list_jsp.java:298) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:67) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:376) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:324) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 根本原因。 java.sql.SQLSyntaxErrorException: Unknown column 'create_at' in 'field list' com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953) com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1009) com.myblog.dao.ArticleDAO.getArticles(ArticleDAO.java:104) org.apache.jsp.list_jsp._jspService(list_jsp.java:141) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:67) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:376) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:324) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ):注意 主要问题的全部 stack 信息可以在 server logs 里查看 Apache Tomcat/9.0.98
最新发布
06-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值