mysql/core_cities_merge.sql
[Pman.Core] / mysql / mysql_change_charset.sql
1
2
3 DROP PROCEDURE IF EXISTS mysql_change_charset;
4
5 delimiter $$
6
7
8 CREATE PROCEDURE mysql_change_charset(mytb TEXT)
9     BEGIN
10     DECLARE mydb TEXT;
11     
12     SELECT database() INTO mydb;
13     
14     
15     SELECT
16         IF(
17             csname='utf8',
18             CONCAT('SELECT ''',mytb,' is Already utf8'' as \"No Need to Convert\"'),
19             CONCAT('ALTER TABLE ',mytb,' CONVERT TO CHARACTER SET  \'utf8\' ')
20             
21         )
22     INTO
23         @ConvertEngineSQL
24         
25     FROM (
26         SELECT
27             CCSA.character_set_name csname
28             FROM
29                 information_schema.`TABLES` T,
30                 information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
31             WHERE
32                 CCSA.collation_name = T.table_collation
33                 AND
34                 T.table_schema = mydb
35                 AND
36                 T.table_name = mytb
37
38     
39     ) AA;
40             
41     -- SELECT ConvertEngineSQL; -- ???
42     PREPARE st FROM @ConvertEngineSQL;
43     EXECUTE st;
44     DEALLOCATE PREPARE st;
45
46 END;
47
48 $$
49
50 DELIMITER ;