• 如何同时更新数据库中所有表的相同字段


                之前在做项目的过程中,有时候需要重置一下数据库中所有表中都存在的一些相同字段,如果表少的话还可以手动更新一下,一旦表的数量过多就会变得麻烦,因此自己写了一个适用于Oracle数据库的SQL脚本,可以先循环遍历出数据库中的所有表,然后拿着表名循环,进行动态SQL的执行。
                我这里需要进行的操作是将所有表中,列名为CREATED_BY,CREATED_DATE,LAST_MODIFIED_BY,LAST_MODIFIED_BY的列更新为null,代码和执行结果如下。

    DECLARE sqlS VARCHAR (32760) ;
    BEGIN
    	FOR table_name IN (
    		SELECT
    			table_name
    		FROM
    			user_tab_columns
    		WHERE
    			column_name = 'CREATED_BY'
    	) 
    		loop 
    			sqlS := (
    					'UPDATE ' || table_name.TABLE_NAME || ' SET CREATED_BY = NULL, CREATED_DATE = NULL, LAST_MODIFIED_BY = NULL, LAST_MODIFIED_DATE = NULL'
    					) ;
    
    			EXECUTE IMMEDIATE sqlS ;
    			dbms_output.put_line (sqlS) ;
    		END loop ; 
    		dbms_output.put_line ('更新结束!') ;
    END ;
    

    执行结果如下:


    实际执行效果图

  • 相关阅读:
    3 path核心模块
    2 http
    运输层:TCP 连接管理
    运输层:TCP 流量控制
    运输层:TCP 可靠数据传输
    计算及网路:性能指标
    MySQL 并发控制概述
    运输层:流水线可靠数据传输协议
    运输层:可靠数据传输原理(FSM 描述)
    计算机网络概述
  • 原文地址:https://www.cnblogs.com/chenghao1/p/7577448.html
Copyright © 2020-2023  润新知