@AllSafe

Как установить кодировку хранимой процедуры?

У меня есть несколько дампов MySQL, которые содержат выражения создания хранимых процедур:
Дамп
DELIMITER ;
/*!50003 SET sql_mode              = @saved_sql_mode */ ;
/*!50003 SET character_set_client  = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection  = @saved_col_connection */ ;
ALTER DATABASE `DB` CHARACTER SET utf8 COLLATE utf8_general_ci ;
/*!50003 DROP PROCEDURE IF EXISTS `GetInfo` */;
ALTER DATABASE `DB` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
/*!50003 SET @saved_cs_client      = @@character_set_client */ ;
/*!50003 SET @saved_cs_results     = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client  = utf8 */ ;
/*!50003 SET character_set_results = utf8 */ ;
/*!50003 SET collation_connection  = utf8_general_ci */ ;
/*!50003 SET @saved_sql_mode       = @@sql_mode */ ;
/*!50003 SET sql_mode              = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`dba`@`%` PROCEDURE `GetInfo`( 
    __id BIGINT,
    )
BEGIN
    SELECT *
	FROM Test
	WHERE id = __id
END ;;
DELIMITER ;
DELIMITER ;
/*!50003 SET sql_mode              = @saved_sql_mode */ ;
/*!50003 SET character_set_client  = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection  = @saved_col_connection */ ;
ALTER DATABASE `DB` CHARACTER SET utf8 COLLATE utf8_general_ci ;
/*!50003 DROP PROCEDURE IF EXISTS `GetPrice` */;
/*!50003 SET @saved_cs_client      = @@character_set_client */ ;
/*!50003 SET @saved_cs_results     = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client  = utf8 */ ;
/*!50003 SET character_set_results = utf8 */ ;
/*!50003 SET collation_connection  = utf8_general_ci */ ;
/*!50003 SET @saved_sql_mode       = @@sql_mode */ ;
/*!50003 SET sql_mode              = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`dba`@`%` PROCEDURE `GetPrice`(__id BIGINT)
BEGIN
	SELECT * FROM Prices WHERE id = __id;
END ;;
DELIMITER ;

Проблема в том, что перед некоторыми из них принудительно задается кодировка:
ALTER DATABASE `DB` CHARACTER SET latin1 COLLATE latin1_swedish_ci ;

Можно ли каким-то образом заставить MySQL принудительно выставлять кодировку базы в utf8_general_ci, вне зависимости от того, что написано перед созданием хранимки? В самом начале дампа и так выставлено, но MySQL это не использует при создании хранимок:
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `DB` /*!40100 DEFAULT CHARACTER SET utf8 */;
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.
от 90 000 до 150 000 руб.
20 авг. 2018, в 21:21
30000 руб./за проект
20 авг. 2018, в 20:46
5000 руб./за проект
20 авг. 2018, в 20:38
700 руб./в час