Mysql 判断表或字段是否存在新增/修改表结构可重复执行sql


DROP PROCEDURE
IF EXISTS proc_tempPro;

CREATE PROCEDURE proc_tempPro ()
BEGIN

START TRANSACTION;

	-- 学生表
	DROP TABLE IF EXISTS student;
	CREATE TABLE student (
	id bigint(20) NOT NULL AUTO_INCREMENT ,
	name varchar(40) DEFAULT NULL ,
	xb varchar(40) DEFAULT NULL ,
	age int(3) DEFAULT NULL ,
	birthday datetime DEFAULT NULL ,
	className varchar(80) DEFAULT NULL ,
	PRIMARY KEY (id)
	) ENGINE=InnoDB DEFAULT CHARSET=utf8;

	-- 学生表新增班级字段
	SELECT
		count(*) INTO @count
	FROM
		information_schema. COLUMNS
	WHERE
		table_schema = DATABASE ()
	AND column_name = 'className'
	AND table_name = 'student';

	IF (@count < 1) THEN
		ALTER TABLE student ADD className VARCHAR(40);
	ELSE 
		ALTER TABLE student MODIFY COLUMN className VARCHAR(20);
		
	END IF;
	

END;

CALL proc_tempPro;

DROP PROCEDURE
IF EXISTS proc_tempPro;

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM