Бывает, что в суете бегущих дней никто не реализовал простую, вроде бы, штуку, и нет ответа на твой вопрос ни в StackOverflow, ни в гугле... :)
Понадобилось намедни нагенерить в постгресе некоторое количество неповторяющихся случайных mac-адресов с первым октетом из нулей.
Настоящий веб-программист :))) написал бы аж целый скрипт с подключением к базе и подстановкой сгенерированных значений в SQL-запросы.
А я не нашёл ничего лучшего, чем соорудить простенькую функцию на Pl/PgSQL. Бонус - она исполняется на стороне сервера и может быть задействована в любом запросе или хранимой функции/процедуре без запуска дополнительных сущностей.
Выглядит так:
( ...click to open code... )
Возможно, кому-то пригодится.
P.S. Постояно замечаю, что люди используют СУБД преимущественно как место хранения таблиц, вынося всю логику в приложения. Причём, началось это не вчера (ругался на такой подход ещё в нулевые), но в последние годы тенденция приобрела угрожающие масштабы, вплоть до попыток теоретического обоснования "почему центральная БД с логикой - это плохо" со стороны микросервисников.
Джеффри Ульмана на них нет :)))
Понадобилось намедни нагенерить в постгресе некоторое количество неповторяющихся случайных mac-адресов с первым октетом из нулей.
Настоящий веб-программист :))) написал бы аж целый скрипт с подключением к базе и подстановкой сгенерированных значений в SQL-запросы.
А я не нашёл ничего лучшего, чем соорудить простенькую функцию на Pl/PgSQL. Бонус - она исполняется на стороне сервера и может быть задействована в любом запросе или хранимой функции/процедуре без запуска дополнительных сущностей.
Выглядит так:
( ...click to open code... )
Возможно, кому-то пригодится.
P.S. Постояно замечаю, что люди используют СУБД преимущественно как место хранения таблиц, вынося всю логику в приложения. Причём, началось это не вчера (ругался на такой подход ещё в нулевые), но в последние годы тенденция приобрела угрожающие масштабы, вплоть до попыток теоретического обоснования "почему центральная БД с логикой - это плохо" со стороны микросервисников.
Джеффри Ульмана на них нет :)))

