mysql 错删字段_mysql删除字段的方法总结

本文介绍了一个存储过程,用于批量删除数据库中所有包含'uu'字段的表。通过定义游标遍历信息模式并动态执行SQL命令,实现了跨库、跨表的字段删除。

DELIMITER $$

DROP PROCEDURE IF EXISTS `test`.`p_drop_uuid_uuname`$$

CREATE DEFINER=`root`@`%` PROCEDURE `p_drop_uu`()

BEGIN

declare _db_name char(30);

declare _tb_name char(30);

declare _col_name char(30);

declare no_more_row tinyint(1);

declare cur_uuid cursor for

select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME

from information_schema.COLUMNS

where COLUMN_NAME='uu';

declare continue handler for not found set no_more_row=1;

set no_more_row=0; -- 判断是否结束的标志位

open cur_uuid;

repeat

fetch cur_uuid into _db_name,_tb_name,_col_name;-- 取记录

-- select _db_name,_tb_name,_col_name;

set @_dt = concat("alter table ", _db_name,".", _tb_name, " drop column uu");

-- 在存储过程中,想把一个变量当作SQL执行,只有用prepare;

prepare s1 from @_dt;

execute s1;

deallocate prepare s1;

until no_more_row

end repeat;

close cur_uuid;

END$$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值