-- 将自动增长字段设置为主键 create table t1 (id int auto_increment Primary key,sid int);-- 将自动增长字段设置为非主键,注意必须显式添加Unique键 create table t2 (sid int primary key,id int auto_increment Unique);-- **将自动增长字段设置为非主键如果未添加唯一索引将会报错**,如...
存储方式:MyISAM引擎:将当前自增值存储在表数据文件中。InnoDB引擎:将当前自增值存储在内存中,并在MySQL重启时从表中查询自增列最大值+步长作为当前自增值。InnoDB引擎:自增值变动记录存储在redo log中,重启后通过redo log恢复之前的自增值。自增值变化:未指定或指定为0/null:插入时将表当前自增...
通常的做法,是通过“select max(id) from tablename”的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表加以“X锁“,待获得max(id)的值以后,再解锁。这种做法需要的步骤比较多,有些麻烦,而且并发性也不好。有没有更简单的做法呢?答案之一是通过select LAST_INSERT_ID()这个操作。
方法一:使用自增长主键 自增长主键是MySQL中非常常见的设置,在创建表的时候可以直接添加AUTO_INCREMENT属性来实现。例如:CREATE TABLE `test` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) NOT NULL COMMENT ‘名称’,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARS...
建议使用uuid作为主键,select replace(uuid(),'-','');insert的时候用这个replace(uuid(),'-','')