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