我正在尝试使用一个过程更改mysql数据库的字符集。
这是我几年前写的,直到今天我才回到过去。
我犯了一个奇怪的错误:
以下是我的程序:
Create procedure changecharset()
Begin
Declare tname varchar(255);
Declare done int default 0;
Declare tc Cursor For
Select TABLE_NAME From information_schema.TABLES Where TABLE_SCHEMA = schema();
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
Open tc;
myloop: loop
Fetch tc into tname;
If done = 1 Then
Leave myloop;
End if ;
Set @query = Concat('Alter Table `', tname, '` convert to character set utf8 collate utf8_swedish_ci;');
PREPARE alterstmt FROM @query;
execute alterstmt ;
Deallocate prepare alterstmt;
End loop;
close tc;
End //
Delimiter ;
[/sql]
这是mysql服务器的答案
1064-您的SQL语法出现错误;查看与MySQL服务器版本相对应的手册,以获得要使用的正确语法
3号线"附近
任何形式的帮助都将不胜感激
MySQL似乎将分号视为语句的末尾。
在运行CREATE PROCEDURE语句之前,请确保更改了分隔符。
DELIMITER $$
CREATE PROCEDURE foo()
BEGIN
DECLARE ... ;
SET ... ;
END $$
DELIMITER ;