Как вернуть строку которая была добавлена mysql
Всем привет! Сейчас использую процедуру такого типа :
CREATE PROCEDURE `createUser`(
IN _name VARCHAR(100),
IN _surname VARCHAR(100),
IN _email VARCHAR(100),
IN _password VARCHAR(512)
)
BEGIN
INSERT INTO `api`.`users`(name, surname, email, password, created_at, updated_at)
VALUE (_name, _surname, _email, _password, now(), now());
SELECT * FROM users WHERE email = _email;
END
мне кажется что SELECT * FROM users WHERE email = _email; это лишняя нагрузка. Возможно ли вернуть всю строку которая была добавлена без запроса SELECT? Буду благодарен за помощь!
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
в данном случае работать будет
CREATE PROCEDURE `createUser`(
IN _name VARCHAR(100),
IN _surname VARCHAR(100),
IN _email VARCHAR(100),
IN _password VARCHAR(512)
)
BEGIN
DECLARE _now Datetime DEFAULT 0;
SET _now = _now();
INSERT INTO `api`.`users`(name, surname, email, password, created_at, updated_at)
VALUE (_name, _surname, _email, _password, _now, _now);
SELECT _name, _surname, _email, _password, _now, _now;
END
но всё таки лучше брать данные из таблицы это гарантирует возврат записанных данных, а не отправленных на сохранение.