Получение и использование уникального идентификатора при вставке - PullRequest
2 голосов
/ 29 марта 2012

Я работаю над устаревшей системой, которая генерирует номера подтверждения на основе идентификатора их записи заказа в базе данных. Это просто набор нулей, добавляемых в начало идентификатора строки, который создается автоматически с помощью автоинкремента. В настоящее время система вставляет заказ в базу данных, а затем немедленно выполняет обновление, чтобы добавить номер подтверждения (после получения идентификатора вставки программным способом).

Я бы хотел сократить этот второй шаг, если это вообще возможно, добавив номер подтверждения при размещении заказа. Тем не менее, я не знаю, как это можно сделать, или, если это можно сделать, с помощью SQL. Это возможно? Если так, то как? Я прогуглил это, но я просто получаю результаты, говорящие мне, как получить последний идентификатор вставки после того, как запрос уже выполнен.

1 Ответ

3 голосов
/ 29 марта 2012

Вы можете написать триггер , который будет выполняться при вставке ордера.

Пример:

CREATE TRIGGER order_zeros BEFORE INSERT ON orders
for each row
begin
  SET NEW.confirmation = LPAD( NEW.id, 8, '0' );
end;

Отказ от ответственности: этот код не тестируется, только для объяснения решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...