MySQL插入字段前检测字段是否存在

MySQL插入字段前检测字段是否存在

DROP PROCEDURE IF EXISTS AddColumnsByIsNotExist; 
delimiter // 
CREATE PROCEDURE AddColumnsByIsNotExist (IN DBName VARCHAR(32), IN tableName VARCHAR(32),IN columnName VARCHAR(32),IN columnType VARCHAR(16),IN suffixVal VARCHAR(255))
BEGIN
 DECLARE nRetRowCount int;
 SELECT count(COLUMN_NAME) INTO nRetRowCount 
 FROM information_schema.columns
 WHERE UPPER(TABLE_SCHEMA) = UPPER(DBName)
 AND UPPER(TABLE_NAME) = UPPER(tableName)
 AND UPPER(COLUMN_NAME) = UPPER(columnName);
 IF nRetRowCount = 0 THEN
  SET @prepareStatement = CONCAT("ALTER TABLE ", tableName, " ADD COLUMN ",columnName ," ", columnType,suffixVal);
    PREPARE stmt FROM @prepareStatement;
    EXECUTE stmt ;
    DEALLOCATE PREPARE stmt;
 END IF;
END//
call AddColumnsByIsNotExist('api84_weixin','ims_xiaoyu_map_place','extra','text','');
Comments are closed.