日期:2014-05-16  浏览次数:20743 次

MySQL中自动增长列ID的使用

MySQL中自动增长列ID的使用

MySQL中可以通过AUTO_INCREMENT属性为新的行产生唯一的标识,如:

CREATE TABLE animals (

????  id  INT NOT NULL AUTO_INCREMENT,

?????? name VARCHAR(10)

?????? INSERT INTO animals (name) VALUES (‘Joe’), (‘Tom’), (‘Rose’);

SELECT * FROM animals;

1?????????? Joe

2?????????? Tom

3?????????? Rose

你可以使用LAST_INSERT_ID()SQL函数或mysql_insert_id() C API函数来查询最新的AUTO_INCREMENT值。这些函数与具体连接有关,因此其返回值不会被其它执行插入功能的连接影响,他返回是本连接最后一个Insert语句所产生的值。

更准确地讲,将在下述条件下更新mysql_insert_id()

·???????? 将值保存到AUTO_INCREMENT列中的INSERT语句。无论值是通过在列中存储特殊值NULL0自动生成的,还是确切的非特殊值,都成立。

·???????? 在有多行INSERT语句的情况下,mysql_insert_id()返回第1个自动生成的AUTO_INCREMENT值,如果未生成这类值,将返回插入在AUTO_INCREMENT列中的最后1个确切值。

·???????? 通过将LAST_INSERT_ID(expr)插入到任意列中以生成AUTO_INCREMENT值的INSERT语句。