Kann ich eine Spalte in der DB-Tabelle (PostgreSQL) erstellen, die eine zufällige Standardwertzeichenfolge enthält, und wie?
Wenn dies nicht möglich ist, lassen Sie es mich bitte wissen.
Kann ich eine Spalte in der DB-Tabelle (PostgreSQL) erstellen, die eine zufällige Standardwertzeichenfolge enthält, und wie?
Wenn dies nicht möglich ist, lassen Sie es mich bitte wissen.
Antworten:
PostgreSQL-Beispiel:
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)
Anscheinend kannst du das machen. (Natürlich können Sie auch andere Zeichen als auch hinzufügen, oder verwenden Sie andere zufälligen Zeichenfolge - Generator als auch - wie dies ., Zum Beispiel)
Die Lösung ist (für PGSQL):
alter TABLE users ADD column register_key text NOT NULL default md5(random()::text);