暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

MavenTalk 2016-09-01
355

一、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,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论