Заполнение таблицы случайными данными в PostgreSQL: UUID, varchar
Быстрый ответ
Если вам потребуется быстро наполнить таблицу случайными данными, примените функции RAND()
и NEWID()
. Следующий SQL-запрос мгновенно сгенерирует случайные числа и уникальные идентификаторы:
INSERT INTO YourTable (IntColumn, UUIDColumn)
SELECT
ROUND((RAND() * (MaxValue – MinValue)) + MinValue) AS RandomInteger,
NEWID() AS UniqueIdentifier
FROM
YourLargeTable;
Замените YourTable
, IntColumn
, UUIDColumn
, MinValue
, MaxValue
и YourLargeTable
на реальные имена из вашей базы данных для получения желаемого результата.
Добавим сложности к случайности в SQL Server
Если желаете усложнить задачу и сделать данные еще более случайными, придется функции CHECKSUM
и NEWID()
по вкусу. Генерирование значений станет увлекательней, основываясь на каждой строке:
INSERT INTO YourTable (StringColumn, DateColumn)
SELECT
SUBSTRING(CONVERT(varchar(36), NEWID()), 1, 8) AS RandomString,
DATEADD(day, (ABS(CHECKSUM(NEWID())) % 365), GETDATE())
FROM
YourLargeTable;
Создавайте уникальные данные, где каждая запись в таблице будет иметь свои неповторимые особенности.
Разговор об случайных данных в PostgreSQL: будет интересно
Попробуем изучить возможности PostgreSQL и применим функции md5
и random
, превратив процесс генерации данных в настоящее праздничное мероприятие случайности:
INSERT INTO YourTable (ID, Description)
SELECT
s,
md5(random()::text)
FROM
generate_series(1, 1000000) s;
Этот запрос заполнит таблицу PostgreSQL миллионом записей, предоставляя уникальные идентификаторы и описания.
Придаём особенности с UUID
Нельзя забывать о первичных ключах. Используя тип данных UUID, вы гарантированно получите уникальность каждой записи:
-- Пример для PostgreSQL с первичным ключом UUID
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
INSERT INTO YourTable (UUIDColumn, OtherData)
SELECT
uuid_generate_v4(),
md5(random()::text)
FROM
generate_series(1, 10000);
Таким образом, каждая запись в таблице будет обладать уникальным первичным ключом UUID со своими интересными данными.
Визуализация
Представим себя садоводом данных, заботливо прокладывающим по нашим таблицам семена случайности:
Данные огорода (🌱🌿🎍) = Ваша таблица
Семена (🌼🌷🌹) = Данные для вставки
Нами прокладываются семена данных в случайные места, создавая разнообразный и естественный пейзаж данных:
INSERT INTO GardenPlot VALUES (RAND(), RAND(), ...);
Наши данные, как цветы, расцвечивают сад, создавая уникальный вицвец информации:
До: [🌱🌿🎍]
После: [🌼🌷🌹🌻🌺]
Каждый новый запрос оживляет новую область сада, обогащая вашу таблицу разнообразием данных.
Забавляемся со строками – экспериментируем в SQL
Вдыхаем жизнь в строки
Попробуйте поиграть со строковыми функциями, такими как LEFT
, RIGHT
и CONCAT
. Они помогут сделать обычные строки необычными:
INSERT INTO YourTable (Username, Password)
SELECT
CONCAT('user', s.id),
LEFT(md5(random()::text), 10)
FROM
generate_series(1, 10000) AS s(id);
Вот оно, чудо! Теперь ваши данные выглядят как сгенерированные в реальности, создавая правдоподобный образ.
Создаем современное искусство данных
Случайные данные могут выглядеть естественно и стильно. Объедините значения, чтобы создать композитные столбцы:
INSERT INTO YourTable (ComplexDescription)
SELECT
string_agg(md5(random()::text), ' ')
FROM
generate_series(1, 10);
Создайте что-то вроде словесной симфонии, которая может стать необычным названием продукта или адресом.
Читаем как поэт, кодим как профессионал
Не нужно быть гением литературы, чтобы придумывать случайные слова. Пусть словарь Unix вдохновит ваш PostgreSQL, обогатив его случайными, но реалистичными данными:
CREATE OR REPLACE FUNCTION RandomWord()
RETURNS text AS $$
DECLARE
lines text[];
BEGIN
lines := string_to_array(pg_read_file('/usr/share/dict/words', 0, 4000000), E'\n');
RETURN lines[(random() * array_length(lines, 1))::int];
END;
$$ LANGUAGE plpgsql VOLATILE;
INSERT INTO YourTable (WordColumn)
SELECT RandomWord()
FROM generate_series(1,10000);
Поздравляем, теперь ваши данные выглядят живыми и интересными.
Полезные материалы
- Mockaroo — инструмент для создания реалистичных случайных данных для вашей SQL-базы данных.
- db<>fiddle — оптимизируйте ваши навыки SQL, используя этот симулятор работы с данными.
- Обсуждение — обмен идеями по генерации случайных данных в SQL Server.
- SQL Data Generator — быстрое создание объемных тестовых наборов данных для MS SQL Server.
- Интересное обсуждение — полезные советы по способам вставки случайных строк в SQLite.