Использование переменных в INSERT запросах

13th Март 2013 | Категории: MySQL | Метки:

Сегодня поговорим об использовании переменных в MySQL на примере запросов типа INSERT.
Задача: Создать пользователя. С учетом выданного id пользователя добавить его ФИО и другие данные.

Нюансы:
– id пользователя нельзя получить с помощью auto_increment поля, так как в обычном режиме номера пользователей начинаются с 1000. До 1000 идут учетные записи админов и модераторов.
– Пароль хранится в виде md5 хэша.

SET @login := 'ivanovii';
SET @pass := 'randompass';
SET @salt := 'randomsalt';
SET @F := 'Иванов';
SET @I := 'Иван';
SET @O := 'Иваныч';
 
SELECT @id := 1 + MAX(id) FROM user WHERE id < 1000;
 
INSERT INTO user (id, is_active, role, login, `password`, salt)
      VALUES (@id, 1, 'admin', @login, md5(@pass+@salt), @salt);
INSERT INTO user_fio (F, I, O, user_id) VALUES (@F, @I, @O, @id);

Для удобства редактирования создано 6 вспомогательных переменных, в которые заносятся логин, пароль, соль и ФИО. При добавлении следующего пользователя вам не нужно править SQL запросы. Нужно просто отредактировать переменные – это очень удобно.
Первый запрос выбирает следующий доступный id для админов и присваивает его переменной @id.
Второй запрос добавляет пользователя с указанными данными.
Третий запрос добавляет фамилию, имя и отчество пользователя в отдельную таблицу.

Subscribe without commenting


Пока комментариев нет.