[解決済み] PostgreSQLのセッションIDに適したランダムな文字列はどのように作成するのですか?
2022-05-18 12:59:41
質問
PostgreSQLでセッション検証のためにランダムな文字列を作りたいのですが、どのような方法がありますか?乱数を取得できることは知っていますが
SELECT random()
で乱数が取れることは知っているので、試しに
SELECT md5(random())
を試してみましたが、うまくいきません。どうすればいいのでしょうか?
どのように解決するのですか?
この簡単な解決策を提案します。
これは非常に単純な関数で、与えられた長さのランダムな文字列を返します。
Create or replace function random_string(length integer) returns text as
$$
declare
chars text[] := '{0,1,2,3,4,5,6,7,8,9,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,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}';
result text := '';
i integer := 0;
begin
if length < 0 then
raise exception 'Given length cannot be less than 0';
end if;
for i in 1..length loop
result := result || chars[1+random()*(array_length(chars, 1)-1)];
end loop;
return result;
end;
$$ language plpgsql;
使い方も
select random_string(15);
出力例です。
select random_string(15) from generate_series(1,15);
random_string
-----------------
5emZKMYUB9C2vT6
3i4JfnKraWduR0J
R5xEfIZEllNynJR
tMAxfql0iMWMIxM
aPSYd7pDLcyibl2
3fPDd54P5llb84Z
VeywDb53oQfn9GZ
BJGaXtfaIkN4NV8
w1mvxzX33NTiBby
knI1Opt4QDonHCJ
P9KC5IBcLE0owBQ
vvEEwc4qfV4VJLg
ckpwwuG8YbMYQJi
rFf6TchXTO3XsLs
axdQvaLBitm6SDP
(15 rows)
関連
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] psql: FATAL: データベース "<user>" が存在しない
-
[解決済み] Rubyでランダムな文字列を生成する方法
-
[解決済み] 英数字のランダムな文字列を生成する方法
-
[解決済み] 各GROUP BYグループの最初の行を選択しますか?
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み] PostgreSQLデータベースにアクティブな接続がある場合、そのデータベースを削除する方法は?
-
[解決済み] ランダムでユニークな英数字の文字列を生成するには?
-
[解決済み】"ランダム性 "を理解する
-
[解決済み】PostgreSQLで読み取り専用ユーザーを作成する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PostgreSQLのURL解決方法
-
Postgresqlの行から列への高度な応用と要約のアイデア
-
PostgresqlのデータベーステーブルのデータをExcel形式にエクスポートする方法(推奨)
-
PostgreSQL] アクティブリンクのあるデータベースを削除する方法
-
[解決済み] PostgreSQL 自動インクリメント
-
[解決済み] コマンドライン引数でPostgreSQLの.sqlファイルを実行する
-
[解決済み】PSQLコマンドを使用してホスト名とポートを検索する
-
[解決済み] Postgresの場合。1つのカラムだけ区別される
-
[解決済み] Postgresデータベースのエンコーディングの取得
-
[解決済み] Postgresql。条件付き一意性制約