PostgreSQL 生成随机身份证ID
postgresql 生成 ID 随机 身份证
2023-09-27 14:27:57 时间
背景
生成随机身份证号。
规则前1、2位数字表示:所在省(直辖市、自治区)的代码;
第3、4位数字表示:所在地级市(自治州)的代码;
第5、6位数字表示:所在区(县、自治县、县级市)的代码;
第7 - 14位数字表示:出生年、月、日;
第15、16位数字表示:所在地的派出所的代码;
第17位数字表示性别:奇数表示男性,偶数表示女性;
第18位数字是校检码:也有的说是个人信息码,不是随计算机的随机产生,它是用来检验身份证的正确性。校检码可以是0—9的数字,有时也用x表示。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
方法从简,只是用于测试。
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;
mysql中 如何设置字段不限长度 在MySQL中,可以使用数据类型TEXT来存储不定长的文本数据。如果不需要限制文本的最大长度,可以使用TEXT数据类型而不指定长度。 例如,下面的SQL语句创建一个名为my_table的表,其中包含一个text_column字段,该字段不限长度:
相关文章
- postgresql迁移表空间
- PostgreSQL安装
- Springmvc_hibernate_postgreSql架构:org.postgresql.util.PSQLException: 错误: 关系 “xxxx“ 不存在 及 postgresql不存在dual如何解决
- PostgreSQL时间格式及相关函数实践
- PostgreSQL Oracle 兼容性 - order by INT(select位置 position)
- MySQL,Oracle,SQL Server等准实时同步到PostgreSQL的方案之一 - FDW外部访问接口
- PostgreSql安装
- PostgreSQL用户角色及其属性介绍
- Postgresql 帐号密码修改方法