【发布时间】:2020-03-21 22:02:01
【问题描述】:
我正在尝试在“用户”表中插入由随机值组成的行,其中电子邮件取决于用户名的值:
最后一个 SELECT 查询没有看到“用户名”行(不存在)
我该如何解决这个问题?
SELECT(
SELECT
string_agg(substr(characters, (random() * length(characters) + 1)::integer, 1), '') as username
from (values('abcdefghijklmnopqrstuvwxyz0123456789')) as symbols(characters) join generate_series(1, 15) on 1 = 1
UNION
SELECT
string_agg(substr(characters, (random() * length(characters) + 1)::integer, 1), '') as password
from (values('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789*')) as symbols(characters) join generate_series(1, 15) on 1 = 1
UNION
SELECT
string_agg(substr(characters, (random() * length(characters) + 1)::integer, 1), '') as phonenumber
from (values('0123456789')) as symbols(characters) join generate_series(1, 9) on 1 = 1
UNION
SELECT
(username || '@' || (
CASE (RANDOM() * 2)::INT
WHEN 0 THEN 'gmail'
WHEN 1 THEN 'hotmail'
WHEN 2 THEN 'yahoo'
END
) || '.com') AS email
) INTO "User" from generate_series(1,10000)
这也行不通:
SELECT(
SELECT
string_agg(substr(characters, (random() * length(characters) + 1)::integer, 1), '') as username
from (values('abcdefghijklmnopqrstuvwxyz0123456789')) as symbols(characters) join generate_series(1, 15) on 1 = 1
UNION
SELECT
string_agg(substr(characters, (random() * length(characters) + 1)::integer, 1), '') as password
from (values('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789')) as symbols(characters) join generate_series(1, 15) on 1 = 1
as select1
UNION
SELECT
string_agg(substr(characters, (random() * length(characters) + 1)::integer, 1), '') as phonenumber
from (values('0123456789')) as symbols(characters) join generate_series(1, 9) on 1 = 1
UNION
SELECT
(select1.username || '@' || (
CASE (RANDOM() * 2)::INT
WHEN 0 THEN 'gmail'
WHEN 1 THEN 'hotmail'
WHEN 2 THEN 'yahoo'
END
) || '.com') AS email
) INTO "User" from generate_series(1,10000)
【问题讨论】:
-
你根本做不到。
标签: sql postgresql