`
cupid_love
  • 浏览: 7828 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

MySQL自增长auto_increment属性

阅读更多

1.把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样。但不建议这样做。自增长只能被分配给固定表的固定的某一字段,不能被多个表共用.
自增长会把一个未指定或NULL值的字段自动填上.
例如有一张表
    CREATE TABLE Movie(  
    id           INT NOT NULL AUTO_INCREMENT,  
    name     VARCHAR(60) NOT NULL,  
    released YEAR NOT NULL,  
    PRIMARY KEY (id)  
   ) ENGINE=InnoDB;  

INSERT INTO Movie (name,released) VALUES ('Gladiator',2000);  
INSERT INTO Movie (id,name,released) VALUES (NULL,'The Bourne Identity',1998);

这样就可以省略自增长的那一列了
可以使用SELECT LAST_INSERT_ID()函数来查看最后一个对auto_increment列insert或update
操作的列


2.如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;情况二,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。



3.AUTO_INCREMENT是数据列的一种属性,只适用于整数类型数据列。

设置AUTO_INCREMENT属性的数据列应该是一个正数序列,所以应该把该数据列声明为UNSIGNED,这样序列的编号个可增加一倍。



4.AUTO_INCREMENT数据列必须有唯一索引,以避免序号重复。



5.AUTO_INCREMENT数据列必须具备NOT NULL属性。



6.AUTO_INCREMENT数据列序号的最大值受该列的数据类型约束,如TINYINT数据列的最大编号是127,如加上UNSIGNED,则最大为255。一旦达到上限,AUTO_INCREMENT就会失效。
分享到:
评论

相关推荐

    python mysql自增字段AUTO_INCREMENT值的修改方式

    auto_increment_value = table_status[6] # 该列为AUTO_INCREMENT值 print("Current AUTO_INCREMENT value:", auto_increment_value) except Error as e: print("Error while fetching table status", e) ``` 3....

    MySQL 序列 AUTO_INCREMENT详解及实例代码

    MySQL 序列 AUTO_INCREMENT详解及实例代码 MySQL序列是一组整数:1, 2, 3, …,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。 本章我们将介绍如何使用...

    mysql中自增auto_increment功能的相关设置及问题

    请注意,如果`auto_increment_offset`的值大于`auto_increment_increment`,则`auto_increment_offset`会被忽略。 3. **自增行为** 当插入新记录时,系统会基于当前的`auto_increment_offset`和`auto_increment_...

    MySQL自增长键理解

    `auto_increment_increment`变量定义了自增长的步长,默认值为1,这意味着每次自增长时数值增加1。而`auto_increment_offset`则设置了初始值,也就是自增长序列的第一个值,默认也是1。 当试图插入一个值X到具有自...

    mysql 双向同步的键值冲突问题的解决方法

    总的来说,解决MySQL双向同步中的键值冲突问题,关键在于利用`auto_increment_offset`和`auto_increment_increment`参数,合理规划每个服务器的自增长ID序列,以确保数据的一致性和完整性。同时,为了保证整个系统的...

    mysql 自增长 时间字段

    在 MySQL 中,我们可以使用 auto_increment 属性来实现字段的自增长。例如,在创建用户信息表 Userinfo 时,我们可以将 User_ID 字段设置为 auto_increment,以便在插入数据时自动增长: ```sql CREATE TABLE ...

    主键自增长(AUTO-INCREMENT)

    主键自增长(AUTO_INCREMENT)

    Mysql auto_increment 重新计数(让id从1开始)

    3. **多表共享自增ID**:在一个数据库中,可以通过设置多个表的`auto_increment_increment`和`auto_increment_offset`系统变量来实现跨表自增ID的同步。 4. **安全删除**:在删除大量数据时,确保了解潜在影响,...

    如何为oracle中的表增加自动增长列.pdf

    在这个触发器中,`your_trigger_name`是触发器的名字,`your_table_name`是包含自动增长列的表的名字,`:NEW.auto_increment_column`是插入新记录时表中新生成的列的值。当触发器触发时,它会自动从序列`your_...

    identity:用于MySql数据库

    ### MySQL中的Identity(Auto-Increment)属性 在MySQL数据库中,`identity`通常与`auto_increment`属性关联在一起。此属性主要用于确保表中的主键字段能够自动递增,从而为每一行数据提供一个唯一标识符。这对于...

    mysql取得自动增长的主键值

    通过设置一个列的`AUTO_INCREMENT`属性,每当向表中插入新记录时,该列的值会自动递增。这种方式极大地简化了数据管理流程,减少了开发人员为每条新记录手动分配唯一ID的工作量。 #### 重要知识点 1. **理解自动...

    createtable.zip_CREATE TABLE_MYSQL_cvi mysql_mysql c_mysql creat

    id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, salary DECIMAL(10, 2) NOT NULL ); ``` 这里,`id`列设为主键,自动增长;`name`列是字符串类型,不允许为空;`salary`列是十进制数,用于...

    mysql.zip_MYSQL_mysql vc_mysql-vc_vc mysql

    const char* create_table_sql = "CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50))"; if (mysql_query(conn, create_table_sql)) { cerr << "Error: " << mysql_error...

    mysql非主键自增长用法实例分析

    在MySQL数据库中,自增长(auto_increment)特性通常用于创建序列化的标识符,这在插入新记录时非常有用,因为它可以自动为新行提供唯一的标识。然而,许多初学者误以为自增长特性只能应用于主键,实际上,MySQL允许...

    初学者必读 MySQL 数据库常见问题汇总.pdf

    在 MySQL 中,我们可以使用 AUTO_INCREMENT 属性来实现自增长字段的功能。例如: create table abc( id int(10) not null auto_increment primary key, name varchar(10) not null, address varchar(200) not ...

    设置MySQL自动增长从某个指定的数开始方法

    自增字段,一定要设置为primary key. 以指定从1000开始为例。 1 创建表的时候就设置: CREATE TABLE `Test` ( ... ) ENGINE=MEMORY AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 RO

    PostgreSQL AUTO INCREMENT(自动增长)

    在MySQL中,我们通常使用`AUTO_INCREMENT`关键字来创建自增字段,例如创建一个表runoob_tbl: ```sql CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` ...

    数据插入异常

    此错误通常发生在尝试向设置了自动增长(AUTO_INCREMENT)属性的字段插入数据时。 #### 二、错误原因分析 1. **数据类型限制**: - 在本例中,表`nagios_servicestatus`中的`instance_id`字段被设置为`INT`类型,...

    Oracle与Mysql自动增长列(id)的区别

    相比之下,MySQL提供了内置的`AUTO_INCREMENT`属性,可以在创建表时直接设置自动增长列。例如: ```sql CREATE TABLE your_table ( id INT(10) AUTO_INCREMENT PRIMARY KEY ) AUTO_INCREMENT=1; -- 设置自动增长列...

Global site tag (gtag.js) - Google Analytics