添加索引和序列的方式

一 . 添加索引的方式

1.添加PRIMARY KEY(主键索引) 
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 
2.添加UNIQUE(唯一索引) 
mysql>ALTER TABLE `table_name` ADD UNIQUE ( 
`column` 
) 
3.添加INDEX(普通索引) 
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 
4.添加FULLTEXT(全文索引) 
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 
5.添加多列索引 
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

 

二 . 添加序列的方式

1. 添加序列的方式

--自定义一个序列  
 create sequence configKey_sequence
       increment by 1 --每次增加几个,我这里是每次增加1  
       start with 1   --从1开始计数  
       nomaxvalue      --不设置最大值  
       nocycle         --一直累加,不循环  
       nocache        --不建缓冲区  
--创建一个触发器          
CREATE TRIGGER configKey_trigger  
   BEFORE INSERT ON users  
   FOR EACH ROW  
   WHEN (new.id is null) --只有在tid为空时,启动该触发器生成tid号  
begin  
   select posts_sequence.nextval into :new.id from dual;  
end;

2. 执行插入语句之后返回主键值

在mybatis层:

在insert标签中插入(主键是通过sequence的形式生成的)

<insert id="insertConfigKey" parameterType="com.example.modules.configKey.entity.ConfigKey" >
        <!-- keyProperty目标属性 -->
        <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Integer">
            select configKey_sequence.NEXTVAL from dual
        </selectKey>
        INSERT INTO configKey
        (
        id,
        configKey,
        configValue,
        configGroup,
        status,
        createTime,
        objCode
        )
        VALUES
        (
        configKey_sequence.NEXTVAL,
        #{configKey,jdbcType=VARCHAR},
        #{configValue,jdbcType=VARCHAR},
        #{configGroup,jdbcType=VARCHAR},
        #{status,jdbcType=VARCHAR},
        sysdate,
        #{objCode,jdbcType=VARCHAR}
        )
    </insert>

在执行完插入语句之后,就可以直接可以在代码中获取 ConfigKey 类的id,插入下一张表的外键entity中了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值