How to insert random character data into tables for testing purpose. THanks.

Started by leaf_yxjalmost 14 years ago5 messagesgeneral
Jump to latest
#1leaf_yxj
leaf_yxj@163.com

Hi Guys, I want to insert the random character data into tables for testing
purpose.
I created a table as follows :

create table test ( id int, b char(100));

I need to insert 100000 rows into this table. I know how to insert
generate_series into coloumn ID. But I don't how to insert the Random
string data into column b.

Please help. Thanks. Grace

--
View this message in context: http://postgresql.1045698.n5.nabble.com/How-to-insert-random-character-data-into-tables-for-testing-purpose-THanks-tp5680973.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.

#2Andreas Kretschmer
akretschmer@spamfence.net
In reply to: leaf_yxj (#1)
Re: How to insert random character data into tables for testing purpose. THanks.

leaf_yxj <leaf_yxj@163.com> wrote:

Hi Guys, I want to insert the random character data into tables for testing
purpose.
I created a table as follows :

create table test ( id int, b char(100));

I need to insert 100000 rows into this table. I know how to insert
generate_series into coloumn ID. But I don't how to insert the Random
string data into column b.

something like:

test=# create table t_random as select s, md5(random()::text) from generate_Series(1,5) s;
SELECT 5
Time: 163,624 ms
test=*# select * from t_random ;
s | md5
---+----------------------------------
1 | ef82dcb3e8465fa9a7494c569dfa093f
2 | ad6ae62bb4a49c7889aba0bfcba224ff
3 | 27717d30d8cf069b3129853d90ae5035
4 | 530c200678711a414e000c60e73286bd
5 | 2b2c3692da1b60760ff95d41cdf9b82d
(5 rows)

Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082�, E 13.56889�

#3leaf_yxj
leaf_yxj@163.com
In reply to: Andreas Kretschmer (#2)
Re: How to insert random character data into tables for testing purpose. THanks.

Hi Andreas,

Thanks a lot.

I tried those following , they work.

1) insert into test values ( generate_series(1,100000000000),
md5(random()::text));

2) create table t_random as select s, md5(random()::text) from
generate_Series(1,5) s;

Thanks.
Regards.

Grace

--
View this message in context: http://postgresql.1045698.n5.nabble.com/How-to-insert-random-character-data-into-tables-for-testing-purpose-THanks-tp5680973p5681242.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.

#4Bruce Momjian
bruce@momjian.us
In reply to: leaf_yxj (#3)
Re: Re: How to insert random character data into tables for testing purpose. THanks.

On Wed, May 02, 2012 at 11:03:47AM -0700, leaf_yxj wrote:

Hi Andreas,

Thanks a lot.

I tried those following , they work.

1) insert into test values ( generate_series(1,100000000000),
md5(random()::text));

2) create table t_random as select s, md5(random()::text) from
generate_Series(1,5) s;

Here is a method that generates strings with a little more variability:

SELECT
(
SELECT string_agg(x, '')
FROM (
SELECT chr(ascii('A') + (random() * 25)::integer)
-- reference 'b' so it is correlated and re-evaluated
FROM generate_series(1, 40 + b * 0)
) AS y(x)
)
FROM generate_series(1,5) as a(b);

string_agg
------------------------------------------
JWNRUIEPJQGDVBXDJDTROFSNMKGVNAQWWEORMSHV
KNYGOWJXBEPOJICURIQGIIDFMRXYLFUUSTCIRLGR
PVHXEITVQKBZREFEVDDHHYCASEIKPOCFJJDNRWJJ
HKIYONDLQGSXFUXXZGHPUKUESXRLUATBLCAAPDLG
JEENYCLYISODDIGWGXHBYCCJECJTFUAOYECXGNWO
(5 rows)

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +

#5leaf_yxj
leaf_yxj@163.com
In reply to: Bruce Momjian (#4)
Re: Re: How to insert random character data into tables for testing purpose. THanks.

Hi Bruce,

Thanks. I tried. It works.
Regards.

Grace

At 2012-05-03 07:14:21,"Bruce Momjian" <bruce@momjian.us> wrote:

Show quoted text

On Wed, May 02, 2012 at 11:03:47AM -0700, leaf_yxj wrote:

Hi Andreas,

Thanks a lot.

I tried those following , they work.

1) insert into test values ( generate_series(1,100000000000),
md5(random()::text));

2) create table t_random as select s, md5(random()::text) from
generate_Series(1,5) s;

Here is a method that generates strings with a little more variability:

SELECT
(
SELECT string_agg(x, '')
FROM (
SELECT chr(ascii('A') + (random() * 25)::integer)
-- reference 'b' so it is correlated and re-evaluated
FROM generate_series(1, 40 + b * 0)
) AS y(x)
)
FROM generate_series(1,5) as a(b);

string_agg
------------------------------------------
JWNRUIEPJQGDVBXDJDTROFSNMKGVNAQWWEORMSHV
KNYGOWJXBEPOJICURIQGIIDFMRXYLFUUSTCIRLGR
PVHXEITVQKBZREFEVDDHHYCASEIKPOCFJJDNRWJJ
HKIYONDLQGSXFUXXZGHPUKUESXRLUATBLCAAPDLG
JEENYCLYISODDIGWGXHBYCCJECJTFUAOYECXGNWO
(5 rows)

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +