У меня есть таблица с именем users, где мой userId является первичным ключом и инкрементальным. Я пытаюсь написать хранимую процедуру, которая будет принимать пользовательские данные, и поскольку userId является инкрементным, она вернет userId, созданный после вставки этого запись.
Вот код моей хранимой процедуры:
CREATE OR REPLACE PROCEDURE sp_register_new_user
(firstname IN VARCHAR2,
lastname IN VARCHAR2,
phone_name IN VARCHAR2,
user_password IN VARCHAR2,
email_id IN VARCHAR2,
userrole IN NUMBER,
udid IN VARCHAR2,
res OUT NUMBER)
AS
BEGIN
INSERT INTO users (
first_name,
last_name,
login,
isactive,
role_id,
password,
uuid,
phonenumber
) VALUES (
firstname,
lastname,
email_id,
1,
userrole,
user_password,
udid,
phone_name
);
SELECT LAST_INSERT_ID();
END sp_register_new_user;
Я взял несколько ссылок, где говорится, что мне нужно написать эту строку, чтобы получить значение последней записи
SELECT LAST_INSERT_ID();
но я получаю сообщение об ошибке.
Кроме того, я хотел сделать это с помощью транзакций, но не знаю, как это сделать, поскольку не знаком с MySQL. Может ли кто-нибудь помочь мне решить эту проблему
Какой продукт СУБД вы на самом деле используете? Это MYSQL или Oracle?
@AnkitBajpai Я использую оракул
@mathguy Я новичок в этом, и спасибо за исправление. Я отредактировал свой вопрос, а также улучшу свои навыки письма.