说明
- mysql本身对非自增长主键,使用last_insert_id()是不会返回结果的,只会返回0;
- mysql只会对定义自增长主键,可以last_insert_id()返回主键值;
MyCAT目前提供了自增长主键功能,但是如果对应的mysql节点上数据表,没有定义auto_increment,那么在MyCAT层调用last_insert_id()也是不会返回结果的。
正确配置方式如下
1)mysql定义自增长组件
CREATE TABLE table1 (‘id_’ INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, ‘name_’ INT(10) UNSIGNED NOT NULL, PRIMARY KEY (‘id_’)) ENGINE=MYISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
2)mycat定义主键自增
3)mycat对应sequence_db_conf.properties增加相应设置
TABLE1=dn1
4)在数据库中mycat_sequence表中增加TABLE1表的sequence记录
测试使用:
Myibatis中新增记录后获取last_insert_id的示例: