Mysql генерирует уникальный идентификатор, когда идентификатор равен NULLMySql

Форум по Mysql
Ответить Пред. темаСлед. тема
Anonymous
 Mysql генерирует уникальный идентификатор, когда идентификатор равен NULL

Сообщение Anonymous »

Итак, у меня есть проект, в котором я индексирую товарные запасы по значениям штрих-кода UPC. Моя таблица инвентаризации имеет основной уникальный столбец upcID, этот столбец не увеличивается автоматически. В тех случаях, когда я сканирую штрих-код, чтобы добавить его в таблицу, он имеет номер штрих-кода gs1, который он использует в качестве идентификатора. Мы хотели бы добавить товары, у которых нет штрих-кода, генерируя уникальный 12-значный номер, начинающийся с «99991», как поддельную часть производителя в формате gs1 upc. Сгенерированный идентификатор должен добавить уникальную часть, используя еще 7 цифр, поэтому в итоге мы получим, например, «999910000001». Как только идентификатор класса элемента запасов окажется в таблице, я могу распечатать этикетки со штрих-кодом и прикрепить их к этим элементам.
Итак, я искал, как сделать триггер перед вставкой, который будет генерировать код, если идентификатор вставки равен NULL, проверьте его по строкам в таблице и увеличивайте его по мере необходимости, пока он не станет уникальным, а затем выполните вставку с ним в качестве идентификатора. Теоретически что-то вроде этого (имейте в виду, что мне уже давно не приходилось писать триггер процедуры MySQL)

Код: Выделить всё

BEGIN
DECLARE isupcunique TINYINT;
DECLARE generatedupc DOUBLE;
SET isupcunique=0;
SET generatedupc=999910000000;
IF new.upcID IS NULL
WHILE isupcunique = 0

'see if its there
IF (select upcID from thetable where upcID=generatedupc limit 1) THEN
'do nothing but add to generatedupc
SET generatedupc+=1;
ELSE
SET new.upcID=generatedupc;
SET isupcunique=1
END IF;

END WHILE;
END IF;
END;
Я понимаю, что мой код неблизок. Я не думаю, что в триггерах существуют IF... Просто общая суть того, что, по моему мнению, мне нужно сделать.
У меня есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/793 ... id-is-null
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «MySql»