zoukankan      html  css  js  c++  java
  • Oracle和Mysql主键自动生成策略的实现

    数据库主键生成策略

    数据库中每个表都要有一个主键,主键不应是表中有意义的属性列。

    主键唯一不重复不为空。

    主键生成策略

    1. 自动增长:数字
    2. 随机生成:32位字符串

    自动增长

    使用序列自增。

    /*先创建一个序列,在插入数据时使用序列名.nextval获取序列的值作为主键。*/
    create sequence seq_student_id
    minvalue 1--最小值
    maxvalue 99999--最大值
    increment by 1--步长
    
    insert into student(id,name,age) values(seq_student_id.nextval,'lee',20)
    

    使用触发器自动化给主键id自增。

    /*为主键创建一个序列*/
    create sequence seq_student_id
    minvalue 10
    maxvalue 99999
    increment by 1;
    
    /*使用触发器添加主键自动增长*/
    create trigger tri_student_id
    /*在对表bank_info进行插入操作前*/
    before insert on student
    for each row
    begin
    	select seq_student_id.nextval into :new.id from dual;
    end;
    

    Mysql数据库在创建数据表时为主键加上auto_increment key

    create table user(
    	uid int auto_increment key primary key 
    );
    

    随机生成

    sys_guid()方法:系统根据当前时间和机器码,生成全球唯一的一个32位序列号。

    insert into student(id,name,age) values(sys_guid(),'lee',20)
    
  • 相关阅读:
    python3 基础数据类型之列表及其操作方法
    python3 逻辑运算符
    python3 内置函数
    python3 装饰器
    python3 变量作用域
    python3 参数以及函数的传参
    python3 函数基础
    洛谷P3379倍增LCA
    洛谷P3375KMP字符串匹配
    洛谷P2613有理数取余
  • 原文地址:https://www.cnblogs.com/hermitlee/p/15133202.html
Copyright © 2011-2022 走看看