mysql:存储过程问题中非法混合的排序规则

时间:2011-03-14 07:47:41

标签: mysql stored-procedures collation

当我调用我的这个商店程序时,我收到此错误:Illegal mix of collations (greek_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='

DELIMITER //

CREATE PROCEDURE setVehicleStats (vehID text, vehStatus text, vehLat double, vehLon double)
BEGIN

    UPDATE vehicles SET st=vehStatus, lat=vehLat, lon=vehLon WHERE id=vehID;

END//

虽然我直接运行UPDATE查询时没问题UPDATE vehicles SET st='Καλημέρα' WHERE id='A001';

我试图明确声明每个列的字符集等。问题似乎只在我调用该过程时才会发生!任何帮助?感谢...

1 个答案:

答案 0 :(得分:0)

我认为问题在于vehStatus参数的整理。服务器或连接默认字符集似乎设置为latin1greek_general_ci排序规则使用greek字符集(ISO 8859-7)。 尝试像这样声明你的参数:

vehStatus text character set greek