mysql:给数据库每个表都新增一个字段
直接执行无需先创建存储过程操作,直接和正常执行sql语句方式一样DROP PROCEDURE IF EXISTS testEndHandle;DELIMITER $$CREATE PROCEDURE testEndHandle()BEGINDECLARE s_tablename VARCHAR(100);/*显示表的数据库中的所有表SELECT table_name FROM informatio
直接执行无需先创建存储过程操作,直接和正常执行sql语句方式一样
DROP PROCEDURE IF EXISTS testEndHandle;
DELIMITER $$
CREATE PROCEDURE testEndHandle()
BEGIN
DECLARE s_tablename VARCHAR(100);
/*显示表的数据库中的所有表
SELECT table_name FROM information_schema.tables WHERE table_schema='databasename' Order by table_name ;
*/
#显示所有
DECLARE cur_table_structure CURSOR
FOR
SELECT table_name
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = '数据库名称' AND table_name NOT IN (
SELECT t.table_name FROM (
SELECT table_name,column_name FROM information_schema.columns
WHERE table_name IN (
SELECT table_name
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = '数据库名称')
) t WHERE t.column_name='新增字段名'
);
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s_tablename = NULL;
OPEN cur_table_structure;
FETCH cur_table_structure INTO s_tablename;
WHILE ( s_tablename IS NOT NULL) DO
SET @MyQuery=CONCAT("alter table `",s_tablename,"` add COLUMN `新增字段名` INT COMMENT '新增字段备注'");
PREPARE msql FROM @MyQuery;
EXECUTE msql ;#USING @c;
FETCH cur_table_structure INTO s_tablename;
END WHILE;
CLOSE cur_table_structure;
更多推荐
所有评论(0)