0

重複レコードが発生したときにエラー メッセージを返したい。groupName はグループ テーブル内の一意のフィールドです。

私が作業しているサーバーはバージョン5.0.77-logであるため、mysql-get-diagnosticsを使用せずにエラー処理を行うにはどうすればよいですか。

 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 ;

重複が発生したときにエラーメッセージを返したいですか?

4

1 に答える 1

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ステートメントを使用して警告を生成できます。

于 2012-04-25T10:35:22.430 に答える