MyCATApache / Mycat-Server

GNU General Public License v2.0
9.5k stars 3.85k forks source link

ER schema 模式,db主键自增,主键不返回 #1976

Open dushitaoyuan opened 6 years ago

dushitaoyuan commented 6 years ago

配置如下: schema配置:

mybatis配置:

SELECT LAST_INSERT_ID() insert into s_order (user_id, address_id, total_price, order_status, createtime) values (#{userId,jdbcType=BIGINT}, #{addressId,jdbcType=BIGINT}, #{totalPrice,jdbcType=DOUBLE}, #{orderStatus,jdbcType=TINYINT}, #{createtime,jdbcType=TIMESTAMP})

序列表配置: NAME current_value increment GLOBAL 101 100 ORDER 10 1 S_ADDRESS 2 100 S_GOODS 1 100 S_ORDER 31 1 S_ORDER_ITEM 1 100 USER 301 100

sequence_db_conf.properties 配置 GLOBAL=seq_dn S_ADDRESS=seq_dn S_GOODS=seq_dn S_ORDER=seq_dn S_ORDER_ITEM=seq_dn USER=seq_dn

获取id: 2018-08-24 17:25:24,878 [com.taiyuanx.mycatdemo.dao.OrderMapper.insert]-[DEBUG] ==> Preparing: insert into s_order (user_id, address_id, total_price, order_status, createtime) values (?, ?, ?, ?, ?) 2018-08-24 17:25:24,881 [com.taiyuanx.mycatdemo.dao.OrderMapper.insert]-[DEBUG] ==> Parameters: 1(Long), 1(Long), 6.0(Double), 0(Byte), 2018-08-24 17:25:24.364(Timestamp) 2018-08-24 17:25:24,998 [com.taiyuanx.mycatdemo.dao.OrderMapper.insert]-[DEBUG] <== Updates: 1 2018-08-24 17:25:24,999 [com.taiyuanx.mycatdemo.dao.OrderMapper.insert!selectKey]-[DEBUG] ==> Preparing: SELECT LAST_INSERT_ID() 2018-08-24 17:25:25,000 [com.taiyuanx.mycatdemo.dao.OrderMapper.insert!selectKey]-[DEBUG] ==> Parameters: 2018-08-24 17:25:25,002 [com.taiyuanx.mycatdemo.dao.OrderMapper.insert!selectKey]-[DEBUG] <== Total: 1 orderId:0

普通分库分表主键获取可以例如:

这种普通表非ER表

zwyqz commented 6 years ago

子表也配置 autoIncrement="true" 属性看看

dushitaoyuan commented 6 years ago

子表设置了属性: autoIncrement="true"

zwyqz commented 6 years ago

数据库里面没有设为自增id

dushitaoyuan commented 6 years ago

都设置了,也是不生效 真实db版本 mysql5.7.20

zwyqz commented 6 years ago

最好在检查一下 一般也就这两个原因