mysql的自增属性为,mysql中自增

http://www.itjxue.com  2023-01-08 20:41  来源:未知  点击次数: 

mysql如何设置ID自增

设置自增列

MYSQL的自增列一定要是有索引的列,设置种子值要在表的后面设置

--mysql

-- 设置自增ID从N开始

CREATE TABLE empautoinc(

ID INT PRIMARY KEY AUTO_INCREMENT

) AUTO_INCREMENT = 100 ; --(设置自增ID从100开始)

insert into empautoinc(id) values(null);

Query OK, 1 row affected (0.00 sec)

mysql select * from empautoinc;

+-----+

| ID |

+-----+

| 100 |

+-----+

1 row in set (0.00 sec)

show table status like 'empautoinc'G;

*************************** 1. row ***************************

Name: empautoinc

Engine: InnoDB

Version: 10

Row_format: Compact

Rows: 1

Avg_row_length: 16384

Data_length: 16384

Max_data_length: 0

Index_length: 0

Data_free: 0

Auto_increment: 101

Create_time: 2016-10-27 01:50:32

Update_time: NULL

Check_time: NULL

Collation: utf8_general_ci

Checksum: NULL

Create_options:

Comment:

1 row in set (0.00 sec)

设置自增列的步长,可以分为全局级别和会话级别

如果是会话级别,那么当用户新建一个会话的时候,那么步长又回到了全局级别,所以mysql的步长跟sqlserver的步长有很大的不同

mysql不能设置为 表级别 的步长

私信666领取资料

mysql数据库自己维护主键自增和hibernate维护主键自增

您好,increment:代理主键,适合于所有数据库,由hibernate维护主键自增,和底层数据库无关,但是不适合于2个或以上hibernate进程。

identity:代理主键,适合于mysql或ms

sql

server等支持自增的dbms,主键值不由hibernate维护。

sequence:代理主键,适合于oracle等支持序列的dbms,主键值不由hibernate维护,由序列产生。

native:代理主键,根据底层数据库的具体特性选择适合的主键生成策略,如果是mysql或sqlserver,选择identity,如果是oracle,选择sequence。

hilo:代理主键,hibernate把特定表的字段作为hign值,生成主键值

uuid.hex:代理主键,hibernate采用uuid

128位算法生成基于字符串的主键值

assign:适合于应用程序维护的自然主键。

想要实现安全的自增只能使用hibernate维护得自增属性identity,或者使用开发者自己维护id值assign。如果使用identify,经过测试发现使用无论开发者是否给对象的id赋值,hibernate在保存对象时会自动给id赋值(为mysql表中id最大值+1);如果使用assign,用户在保存对象前必须给对象的id赋值,值必须大于等于0,如果等于0时,那么数据表id记录会使用mysql数据库维护的最大id+1,如果大于0时,则表id则为用户设置的对象的id值。

经过实验得出,想要实现mysql的sql语句句式以及最终效果,需要设置hibernate配置文件的id自增属性为assign,如果知道id的话则设置对象的id为已知的id,否则设置id的值为0,。

如果id自增属性为assign,那么hibernate保存对象后,对象的id仍然为保存前设置的值;

如果id自增属性为identity,那么hibernate保存对象后,对象的id为数据库中该条记录的id的值。

mysql数据库如何实现某一属性自增,如一个存储图书信息的book表,里面有一个Bookid的属性。

类似

CREATE TABLE BOOKINFO (

ID bigint(20) NOT NULL AUTO_INCREMENT,

BOOKNAME VARCHAR(45),

PRIMARY KEY (`ID`)

) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8

存储引擎和默认字符集选择你需要的就好,AUTO_INCREMENT=10001表示的就是从10001开始自增

插入时使用类似:

insert into bookinfo values (null,'BOOK1');

就可以实现自增。

需要注意的是,设为自增的列(这里是ID)一定入索引(不一定需要主键索引,任何索引都行,但是没有比把自增列当主键更合适的了吧)。

关于mysql自增的问题

(idunsignedintprimarykeyauto_incrementnotnull,

titlevarchar(32),

contenttext);

auto_increment就是自增长的属性

mysql如何指定id,然后自增长

auto_increment=100;

(责任编辑:IT教学网)

更多

推荐mac苹果系统文章