Як створити стовпчик у БД із випадковим значенням за замовчуванням


10

Чи можу я створити стовпчик у таблиці БД (PostgreSQL), у якого є значення випадкових рядків за замовчуванням, і як?

Якщо це неможливо, будь ласка, повідомте про це.


будь ласка, запитайте ще раз про MySQL, чи потрібна вам відповідь і для цього RDBMS
Джек каже спробувати topanswers.xyz

Відповіді:


11

Приклад PostgreSQL:

CREATE OR REPLACE FUNCTION f_random_text(
    length integer
)
RETURNS text AS
$body$
WITH chars AS (
    SELECT unnest(string_to_array('A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9', ' ')) AS _char
),
charlist AS
(
    SELECT _char FROM chars ORDER BY random() LIMIT $1
)
SELECT string_agg(_char, '')
FROM charlist
;
$body$
LANGUAGE sql;


DROP TABLE IF EXISTS tmp_test;


CREATE TEMPORARY TABLE tmp_test (
    id serial,
    data text default f_random_text(12)
);


INSERT INTO tmp_test
VALUES 
    (DEFAULT, DEFAULT),
    (DEFAULT, DEFAULT)
;


SELECT * FROM tmp_test;

 id |     data
----+--------------
  1 | RYMUJH4E0NIQ
  2 | 7U4029BOKAEJ
(2 rows)

Мабуть, ви можете це зробити. (Звичайно, ви можете додати інші символи , а також, чи використовувати інший генератор випадкових рядків , а також - як це ., Наприклад)


1
ВИБІР md5 (випадковий () :: текст); - Це все, дякую!
тасманіскі

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.