精华内容
下载资源
问答
  • 下面小编就为大家带来一篇php批量修改表结构实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Mysql按日分表如何实现批量修改表结构? 1.列编辑 1.1.首先通过以下sql查找出所有按日分表的表名 SELECT table_name FROM information_schema.TABLES WHERE table_schema = 'bianmin_trade' AND table_name ...

    Mysql按日分表如何实现批量修改表结构?

    1.列编辑
    1.1.首先通过以下sql查找出所有按日分表的表名

    SELECT
    	table_name 
    FROM
    	information_schema.TABLES 
    WHERE
    	table_schema = 'bianmin_trade' 
    	AND table_name LIKE 'bill_20%';
    

    1.2.通过文本工具(notepad++)自带的列编辑工具、进行批量编辑
    在这里插入图片描述

    优点是:SQL语句比较简单直观,容易审核
    缺点是:按日分表,这样就会照成大量的SQL,显得很繁琐。
    场景:适合与生产环境执行;

    2.通过Mysql存储过程进行实现:

    /**判断存储过程是否存在,否则删除*/
    drop procedure if exists batchUpdate;
    /**声明存储过程*/
    CREATE PROCEDURE batchUpdate()  
      BEGIN  
        DECLARE tableName varchar(20) default '';  
        DECLARE done INT DEFAULT 0;  
        DECLARE tableNames CURSOR FOR select table_name from information_schema.tables where table_schema='bianmin_trade' and table_name like  'bill_20%';  
        DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;  
        OPEN tableNames;  
        REPEAT  
          FETCH tableNames INTO tableName;  
          IF not done THEN  
             set @sql=concat('alter table ',tableName,' add payment_type tinyint(2) not null default 3 comment "缴费类型"; ');
             PREPARE stmt from @sql; 
             execute stmt;
    
          END IF;  
        UNTIL done END REPEAT;  
        CLOSE tableNames;     
      END;  
    /**执行存储过程*/        
    call batchUpdate(); 
    /**删除存储过程*/
    drop procedure batchUpdate;
    

    优点是:SQL比较简洁
    缺点是:加大了审核难度,容易存在安全风险。
    场景:适合测试环境执行;

    展开全文
  • Mysql 批量修改表结构

    千次阅读 2017-03-14 18:40:39
    今天有个小需求,需要把100张表的引擎,从...可以利用存储过程来批量处理。 -- 定义存储过程 DELIMITER // CREATE PROCEDURE alter_table_enegine() BEGIN DECLARE `@i` INT(11); DECLARE `@sqlstr` VARCHAR(2560); SET

         今天有个小需求,需要把100张表的引擎,从InnoDB改为MYISAM。想到要手工执行,简直头大,还好有存储过程。可以利用存储过程来批量处理。

    -- 定义存储过程
    DELIMITER //
    CREATE PROCEDURE alter_table_enegine()
    BEGIN
    DECLARE `@i` INT(11);
    DECLARE `@sqlstr` VARCHAR(2560);
    SET `@i`=0;
    WHILE `@i` < 100 DO
    SET @sqlstr = CONCAT(
    "ALTER TABLE pt_course_",
    `@i`,
    " ENGINE=MYISAM"
    );
    PREPARE stmt FROM @sqlstr;
    EXECUTE stmt;
    SET `@i` = `@i` + 1;
    END WHILE;
    END;
    -- 执行存储过程
    CALL alter_table_enegine();
    -- 执行完,删掉临时用的存储过程
    DROP PROCEDURE alter_table_enegine;

          中间那部分,也可以改为建表语句,那么就会变成批量生成表的了:)

    展开全文
  • 使用存储过程批量修改表结构

    千次阅读 2018-07-19 15:36:11
    各个之间表名的规律为 tablename_0…9,如果需要修改表结构,添加一列,则可以使用存储结构运行下列语句: CREATE PROCEDURE alter_table_enegine() BEGIN DECLARE `@i` int(11); DECLARE `@sqlstr` VARCHAR(2048...

    在数据库中有结构相同的若干表,tablename

    各个表之间表名的规律为 tablename_0…9,如果需要修改表结构,添加一列,则可以使用存储结构运行下列语句:

    CREATE PROCEDURE alter_table_enegine()
    BEGIN
    DECLARE `@i` int(11);
    DECLARE `@sqlstr` VARCHAR(2048);
    SET `@i` = 0 ;
    WHILE `@i` < 10 DO
    SET @sqlstr = CONCAT(
    "ALTER TABLE tablename_",
    `@i`,
    " ADD COLUMN `columnName`  varchar(100) NULL AFTER `beforeColName`"
    );
    PREPARE stmt FROM @sqlstr;
    EXECUTE stmt;
    SET `@i` = `@i` + 1;
    END WHILE;
    END;
    CALL alter_table_enegine();
    DROP PROCEDURE alter_table_enegine;

    SQL语句可以自由修改,规律可以自由定义。

    @i定义时需要加单引号,使用时也需要加
    @sqlStr定义时需要加单引号,但使用时一定不要加

    也许是数据类型的问题。

    展开全文
  • declare @name sysnameDECLARE @sqlfilter VARCHAR(max) declare csr cursor for select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_NAME like 'box_mac_%' open csr FETCH NEXT FROM csr INT...

    declare @name sysname
    DECLARE @sqlfilter VARCHAR(max)

    declare csr cursor

    for select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_NAME like 'box_mac_%'

    open csr

    FETCH NEXT FROM csr INTO @name

    while (@@FETCH_STATUS=0)

    BEGIN

    set @sqlfilter='alter table '+@name+' add drive_quite_start datetime null'
    print @sqlfilter;
    exec(@sqlfilter);

    fetch next from csr into @name

    END

    CLOSE csr

    DEALLOCATE csr

    转载于:https://www.cnblogs.com/AlexLeeLi/p/10005834.html

    展开全文
  • 现数据库有好多个分表统一命名t_new_开头,业务需要给每个增加一个字段city_id 。 各项参数: 参数项 参数 数据库名: mydatabase 表名 t_new_1 , t_new_2, t_new_3, t_new_4 , … ...
  • SQL 批量修改表结构

    2013-12-12 10:35:00
    项目中发现一批语言的某个字段设的值太小了需要增大,因为涉及到很多张表,所以采用游标一张张的处理。 代码很简单 DECLARE @tableName NVARCHAR(50) DECLARE @sql NVARCHAR(200) DECLARE LangTable ...
  • MySQL--存储过程批量修改表结构

    千次阅读 2018-10-25 19:58:45
    -- 给customer添加upload_date字段,将customer_nbr字段的长度改为20,同时将创建时间赋值给导入时间 DELIMITER // drop procedure if exists customerAddField// CREATE PROCEDURE customerAddField() BEGIN ...
  •  1、给加注释COMMENT ON TABLE land.landsellmend IS '补办出让'; 2、查看的COMMENTSELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME='LANDSELLMEND'; 3、给字段加注释comment on column document.doc.bid ...
  • 如下为批量修改表字段默认值 如需修改其他 更改sql即可 -- 如果存储过程存在就删除 DROP PROCEDURE IF EXISTS updateColumn; CREATE PROCEDURE updateColumn() BEGIN -- 定义循环条件 DECLARE flag INT DEFAULT 0; -...
  • doris批量导出表结构python脚本
  • 在线批量修改mysql中表结构 1、获取要修改的名称登录mysql库,查询出所有 show tables; 将需要修改表结构名称存放到b.txt文件中2、执行修改修改引擎为InnoDB for i in `cat b.txt`;do /usr/...
  • oracle批量修改数据库的表结构

    千次阅读 2014-03-03 14:52:34
    如果数据库有些表结构相同,想修改这些表结构的话,使用如下语句: DECLARE   CURSOR TEMP IS SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME LIKE ' %TEST%'   STR VARCHAR2(100) := '...
  • 前些天开发给了100多张表,要把中的某一个字段类型修改一下。当时稍微有点懵。紧接着就发现这些需要修改其实都是有共性的,就是使用同一个模板可以修改所有的。下面是具体的代码实现。#掘金·Python 月 #!/...
  • 1、先在对应的数据库上执行以下语句获取对应的需要更改的sql # 根据转换字符集 修改 utf8mb4 ---> utf8mb4_general_ci SELECT CONCAT( 'ALTER TABLE ', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 ...
  • mysql批量修改表前缀

    2016-02-01 17:33:18
    mysql批量修改表前缀,上传文件到网站根目录,修改配置信息,访问即可。适用:在一个空间配置同一个CMS的中英文版,或其他需要在一个空间复制一套相同表结构的情况。
  • MySQL批量导出表结构

    千次阅读 2019-03-05 16:37:53
    SELECT table_name, COLUMN_NAME 代码, ...-- wx 为数据库名称,到时候只需要修改成你要导出表结构的数据库即可 table_schema ='wx';   --数据库名称查询 show databases;        
  • 批量修改mysql表结构信息

    千次阅读 2013-10-25 10:34:21
    use information_schema; select  CONCAT('ALTER TABLE `' ,table_schema,'`.`' ,table_name,'`' ,' CHANGE COLUMN ' ,'`',column_name,'` `' -- source col name ...,column_name,'` ' -- change c
  • 前期为了方便整理,使用Excel完成了字段设计,弄好以后想把字段转化为的时候要一个字段一个字段的粘贴,不太方便,网上搜了一些方案后发现用PowerDesigner导入Excel后可以批量生成表结构和sql,费了一番功夫后终于...
  • Excel批量导入表结构到PowerDesigner

    千次阅读 2017-07-28 17:21:47
    编写测试EXCEL,格式如图所示: 打开PowerDesigner,创建物理模型(Physical Data Model) 在PowerDesigner菜单栏中,依次点击...修改脚本,指定excel所在路径及文件名 Option Explicit Dim mdl ' the current mod
  • Excel批量导入表结构到power designer

    千次阅读 2016-11-01 16:30:03
    5. 以上方式一次只能加一张,下面提供批量方法( 指定 excel 所在路径及文件名 , 列出sheet名): '****************************************************************************** Option Explicit ...
  • ORA-30556: 在要修改的列上已定义函数索引alter table LDPERSON modify CUSTOMERNO varchar2(24); 原因为解决办法: 在原来的系统中考虑到用trim()和没有Trim(),所以当你把char类型改成Varchar2类型时用...
  • mysql 批量修改表前缀

    千次阅读 2018-08-29 17:20:41
    最近有个项目的时候改了原来的前缀,但是安装之后还是原来的前缀,导致访问的时候会报表找不到的错误,接下来,分享一下Mysql批量修改表前缀的过程 1.打开mysql可视化工具,或者进入mysql的命令操作界面,选择...
  • -- 批量查询有相同类型的 SELECT TABLE_SCHEMA AS '库名', TABLE_NAME AS '表名', COLUMN_NAME AS '列名', ORDINAL_POSITION AS '列的排列顺序', COLUMN_DEFAULT AS '默认值', IS_NULLABLE AS '是否为空', ...
  • 因为产品结构中的某一个型号停产,统一要换成另一种型号,如果手工操作需要把之前录入的产品bom结构一个个去修改,费时费力,后经研究发现用sql 语句一句话即可解决。 首先去t_icitem中查询出要替换的物料所使用的...
  • mysql 批量修改表的属性,字符集

    千次阅读 2018-10-23 11:13:30
    正常修改语句:   alter table  convert to ...获取所有修改表的语句: select CONCAT('alter table ',a.table_name,' convert to character set utf8mb4 collate utf8mb4_bin;') fro...
  • 我们在使用SqlServer时经常遇到这种情况,当修改某个结构后,相关的视图就不对了而导致程序错误,因此就有个下面这个存储过程。  CREATE PROCEDURE RefreshAllView AS DECLARE MyCursor CURSOR FOR select...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 129,791
精华内容 51,916
关键字:

批量修改表结构