重复的唯一字段时返回错误消息

时间:2012-04-25 10:28:51

标签: mysql stored-procedures error-handling

我想在发生重复记录时返回错误消息,groupName是组表中的唯一字段。

我是这样制作的,如何使用mysql-get-diagnostics处理错误,因为我正在处理的服务器是版本5.0.77-log。

 DELIMITER //
 CREATE PROCEDURE addNewGroup(IN groupName varchar(128), IN addedBy INT,OUT message varchar(128) )

 BEGIN


   insert IGNORE  into  `group`( `group_name`,`Date_time_ added`,`added_by`) values (groupName ,CURRENT_TIMESTAMP(),addedBy) ;


END //

DELIMITER ;

我想在发生重复时返回错误消息吗?

1 个答案:

答案 0 :(得分:0)

尝试此方法 -

BEGIN
  INSERT IGNORE INTO table VALUES...;
  IF ROW_COUNT() = 0 THEN
    SET message = 'duplicate records occur';
  END IF;
END

ROW_COUNT()函数返回最后一个语句的插入行数。

在MySQL 5.5中。您可以使用SIGNAL语句生成警告。