欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-15 16:30:03
...


            之前在做项目的过程中,有时候需要重置一下数据库中所有表中都存在的一些相同字段,如果表少的话还可以手动更新一下,一旦表的数量过多就会变得麻烦,因此自己写了一个适用于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 ;


执行结果如下:


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