よくわからない質問がいくつかあります。誰かが私を助けてくれれば大きな助けになります
1)ユーザーがデータベースに正常に挿入されたこと、または失敗したことをコードに戻したいと思います。Last_Insert_idがnullでない場合の行に沿ってこれを行いますか? 挿入されたというメッセージを返します。
2) last_isert_id は、挿入されたユーザーに固有のものになります。つまり、一度に 1 つずつ挿入されます。これを達成するためにロックを行う必要がありますか。たとえば、プロファイル テーブルがあり、last_isert_id を取得した場合、多くのユーザーが一度にサインアップする場合、各 ID が各ユーザーに対応することを保証できます。または、テーブルのロックを行う必要がありますか。
改善の点で最も歓迎されるその他のフィードバック
始める
DECLARE _user_role_permission int;
DECLARE _user_id int;
DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;
DECLARE EXIT HANDLER FOR SQLWARNING ROLLBACK;
SET _user_role_permission = (SELECT id FROM user_role_permission WHERE role_permission = in_role_permission);
START TRANSACTION;
INSERT INTO user_site(username, email, status, password, password_strategy, salt, requires_new_password, reset_token,
login_time, lock_status, login_ip, created_ip, activation_key, validation_key,
create_time, update_time)
VALUES(in_username, in_email, in_status, in_password,
in_password_strategy, in_salt, in_requires_new_password,
in_reset_token, in_login_time, in_lock_status, in_login_ip,
in_created_ip, in_activation_key, in_validation_key,
in_create_time, in_update_time);
SET _user_id = LAST_INSERT_ID();
INSERT INTO user(user_site_id) VALUES(_user_id);
INSERT INTO user_permission(user_id, permission_id)VALUES (_user_id,_user_role_permission);
COMMIT;
END