Генерация уникального поля MySQL на основе содержимого других полей

0

При создании уникальных пользовательских кодов ссылок (т.е. JOB1293XYZ) какое-то время я создавал пользовательские ссылки/хеши в PHP, а затем проверял мою базу данных, чтобы увидеть, существует ли она и если она создает другую.

Мне любопытно, если в MySQL можно сгенерировать содержимое поля на основе других полей в этой строке, я был бы удобным ярлыком. Например...

Таблица: Сотрудники

  • EmployeeID
  • ПгвЬЫате
  • LastName
  • jobTitle
  • DOB
  • employeeCode

Итак, для employeeCode я могу, возможно, использовать пользовательскую функцию MySQL (о которой я очень мало знаю) для создания содержимого поля. возможно, взяв первую букву первого имени, первую букву второго имени, длину строки названия задания и две последние цифры DOB? Это просто пример.

Если это возможно, и любой может указать мне на какой-либо справочный материал, который был бы замечательным, пролетел через тяжелую документацию по MySQL и будет продолжать делать это пока.

Спасибо заранее!

  • 0
    Почему бы просто не использовать поле "id" первичного ключа? Редактировать: если подумать, я не уверен, что понимаю здесь вариант использования. Вы просто хотите иметь возможность проверить, существует ли клиент уже на основе этих полей? Разве это не определение запроса?
Теги:
function

1 ответ

2
Лучший ответ

Вы можете объединить все поля вместе и сделать MD5 в результирующей строке.

ОБНОВЛЕНИЕ Сотрудники SET md5str = MD5 (CONCAT (поле1, поле2, поле3))...

Я бы не рекомендовал этот подход, потому что тогда вопрос о том, что делать, если бы вы столкнулись с хеш-столкновением, было бы очень сложно, если не невозможно ответить.

Вышеупомянутая идея не моя: я заметил это в коде maatkit.

  • 0
    Спасибо, мне было интересно, была ли возможность выполнить функцию при вводе строки. Я думаю, что буду придерживаться этого в PHP :) Независимо от благодарности за помощь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню