一 . 添加索引的方式
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中了