mysql遍历某一数据库的某张表的所有字段进行操作
2018-01-04 13:54
961 查看
写了一个存储过程,参数是输入数据库名称和表名称,然后对该表的所有字段进行操作,过程如下:
BEGIN
#将表格中含有\N的值置为空
DECLARE table_column VARCHAR(64);
DECLARE flag SMALLINT DEFAULT 0;
DECLARE curl1 CURSOR FOR
SELECT COLUMN_NAME FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = my_data_base AND TABLE_NAME = my_table_name;
DECLARE EXIT HANDLER FOR NOT FOUND SET flag = -1;
OPEN curl1;
REPEAT
FETCH curl1 INTO table_column;
SET @sql1 = CONCAT('UPDATE ', my_data_base, '.', my_table_name, ' SET ', table_column, ' = NULL WHERE ',
table_column, " = \'\\\\N'\; " );
SELECT @sql1;
PREPARE pre1 FROM @sql1;
EXECUTE pre1;
UNTIL flag = -1 END REPEAT;
DEALLOCATE PREPARE pre1;
CLOSE curl1;
ENDafaf
>
BEGIN
#将表格中含有\N的值置为空
DECLARE table_column VARCHAR(64);
DECLARE flag SMALLINT DEFAULT 0;
DECLARE curl1 CURSOR FOR
SELECT COLUMN_NAME FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = my_data_base AND TABLE_NAME = my_table_name;
DECLARE EXIT HANDLER FOR NOT FOUND SET flag = -1;
OPEN curl1;
REPEAT
FETCH curl1 INTO table_column;
SET @sql1 = CONCAT('UPDATE ', my_data_base, '.', my_table_name, ' SET ', table_column, ' = NULL WHERE ',
table_column, " = \'\\\\N'\; " );
SELECT @sql1;
PREPARE pre1 FROM @sql1;
EXECUTE pre1;
UNTIL flag = -1 END REPEAT;
DEALLOCATE PREPARE pre1;
CLOSE curl1;
ENDafaf
>
相关文章推荐
- 查找 数据库中包含某一字段的所有表的表名的mysql语句
- mysql 为某一数据库下所有表中添加相同字段
- unity3D使用C#遍历场景内所有元素进行操作
- 对数据库中所有的表进行操作
- unity3D使用C#遍历场景内所有元素进行操作
- mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
- MySQL对数据库,表和表字段或者是记录的基本操作
- JDBC之数据库的增,删,改,查, 搜, 批量执行,获取表结构,获取某一用户下所有的表,滚轴操作的封装
- mysql查询数据库所有表和字段及其注释
- mysql取得数据库所有表名和字段注释
- oracle mysql sqlserver 查看当前所有数据库及数据库基本操作命令
- 利用SQL语句进行添加、删除、修改字段,表与字段的基本操作,数据库备份等
- 通过游标遍历数据库中的用户表,找出所有含有NULL值字段的表名和字段名
- mysql获取指定数据库所有表名和获取指定表所有字段名
- mysql如何给一个数据库所有表都增加一个字段?
- mysql使用sql语句查询数据库所有表注释已经表字段注释
- mysql用shell脚本链接数据库进行操作
- mysql怎样利用对所有数据库进行备份的备份文件只恢复某一个数据库
- mysql 存 储过 程 查询 某一字段外的所有字 段
- Mysql中查询某个数据库中所有表的字段信息