以下のように sth を実行したいと思います。他の 2 つのプロシージャを含む 1 つのプロシージャがあります。最初のものは私の「ユーザー」テーブルに日付を挿入し、2番目のものは他のいくつかのテーブルに同じことをします。問題は、間違った 'CountryID' でこの SP を呼び出すと、予期したとおりにプロセスがエラーになり、最初の SP (InsertUsername) がコミットされることです! 明らかに私が望むのは、このエラーの後にロールバックすることです。
BEGIN
START TRANSACTION ;
SET @Username = _Username;
CALL `InsertUsername` (
@Username , @UserID
);
CALL `InsertAddress` (
@UserID , _CountryID , _AdderssText , _PostalCode
);
COMMIT ;
END