postgreSQL自動生成隨機數值的實例
1、 隨機生成身份證
新建一個函數,用來生成身份證號碼,需要輸入兩個日期參數
create or replace function gen_id( a date, b date ) returns text as $$ select lpad((random()*99)::int::text, 2, '0') || lpad((random()*99)::int::text, 2, '0') || lpad((random()*99)::int::text, 2, '0') || to_char(a + (random()*(b-a))::int, 'yyyymmdd') || lpad((random()*99)::int::text, 2, '0') || random()::int || (case when random()*10 >9 then 'X' else (random()*9)::int::text end ) ; $$ language sql strict;
生成10個隨機身份證號碼
select gen_id('1900-01-01', '2017-10-16') from generate_series(1,10);
生成十萬條隨機身份證號碼
insert into testpg SELECT generate_series(1,100000) as xm, gen_id('1900-01-01', '2017-10-16') as num;
補充:postgreSql的id設置自動生成隨機24位數字與字母組合(uuid)
我就廢話不多說瞭,大傢還是直接看代碼吧~
@Id @GeneratedValue(generator="system_uuid") @GenericGenerator(name="system_uuid",strategy="uuid") @Column(name = "ID", unique = true, nullable = false, length = 24) public String getId() { return this.id; }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- 使用postgresql 模擬批量數據插入的案例
- postgreSQL數據庫 實現向表中快速插入1000000條數據
- MySQL 生成隨機數字、字符串、日期、驗證碼及 UUID的方法
- Oracle生成隨機數字、字符串、日期、驗證碼及 UUID的方法
- Springboot引入hibernate配置自動建表並進行增刪改查操作