ITPub博客

首页 > 数据库 > 数据库开发技术 > MYSQL实操技巧小三招,大为实用

MYSQL实操技巧小三招,大为实用

原创 数据库开发技术 作者:MavenTalk 时间:2016-09-01 19:38:47 0 删除 编辑

一、MYSQL字段值自动更新时间

        在生产环境中可能会出现,项目已经上线,但是更新时间的字段没有赋值,或者开过过程中每次都针对更新时间增加代码赋值很繁琐。现在可以通过修改更新时间的字段,来保证每次更新数据时,数据的更新时间自动更新。在一个已经建好的表执行如下sql即可完成更新时间自动更新:


ALTER TABLE `tb_sys_user` MODIFY COLUMN update_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;


若是批量的操作,可采用下文技巧三来批量完成。


二、统一在PowerDesigner中增加字段


    可通过VB脚本统一处理,脚本内容如下:


Option Explicit

Dim mdl ' the current model                

Set mdl = ActiveModel                      

Dim Tab 'running table                    

Dim col_ModCreateBy , col_ModCreateDate ,col_ModUpdateBy ,col_ModUpdateDate ,col_ModRemarks , col_ModVersion , col_ModStatus

' 定义属性变量                            

for each Tab in ActiveModel.Tables        

 Set col_ModCreateBy = Tab.Columns.CreateNew  

 set col_ModCreateDate = Tab.Columns.CreateNew

 set col_ModUpdateBy = Tab.Columns.CreateNew

 set col_ModUpdateDate = Tab.Columns.CreateNew

 set col_ModRemarks = Tab.Columns.CreateNew

 set col_ModVersion = Tab.Columns.CreateNew

 set col_ModStatus = Tab.Columns.CreateNew


 col_ModCreateBy.name = "创建者"            

 col_ModCreateBy.code = "createBy"          

 col_ModCreateBy.DataType = "varchar(32)"            


 col_ModCreateDate.name = "创建时间"            

 col_ModCreateDate.code = "createDate"          

 col_ModCreateDate.DataType = "datetime"  


 col_ModUpdateBy.name = "更新者"            

 col_ModUpdateBy.code = "updateBy"          

 col_ModUpdateBy.DataType = "varchar(32)"  


 col_ModUpdateDate.name = "更新时间"            

 col_ModUpdateDate.code = "updateDate"          

 col_ModUpdateDate.DataType = "datetime"  


 col_ModRemarks.name = "备注信息"            

 col_ModRemarks.code = "remark"          

 col_ModRemarks.DataType = "varchar(500)"  


 col_ModVersion.name = "版本"            

 col_ModVersion.code = "version"          

 col_ModVersion.DataType = "int(4)"  


 col_ModStatus.name = "状态"            

 col_ModStatus.code = "state"          

 col_ModStatus.DataType = "int(4)"  

next 


在PowerDesigner中使用方法为:PowerDesigner->Tools->Execute Commands->Edit/Run Scripts。将代码Copy进去执行就可以了,是对整个CDM或PDM进行操作。


      

三、MYSQL统一修改字段表结构中信息

        以本文问题一示例,先进入information_schema库,操作TABLES表。



写SQL查询语句,如下:

SELECT 

  CONCAT(

    'ALTER TABLE ',

    st.`TABLE_NAME`,

    ' MODIFY COLUMN update_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;'

  ) AS alterSQL

FROM

  `TABLES` st 

WHERE st.`TABLE_SCHEMA` = 'dbname';

以\n结尾导出成csv,以文本形式打开,即可形成如下的sql句列。再到MYSQL客户端,批量执行即可。

歪脖贰点零 ∣一个有逼格的WEB2.0
长按,识别二维码,加关注


原文作者:MavenTalk;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2016-07-13

  • 博文量
    461
  • 访问量
    189214