- 属性:自增列不必是:唯一的、primary、正数、bigint
- 属性:auto_increment 是mysql在表列定义中的一个可选属性,和默认值属性冲突。
- 属性:必须定义在该列上的索引!
- 属性:应用于number类型的列:包括各种整数、浮点数、定点数
- 属性:自增列可以和普通的数字类型属性(unsigned、zerofill的)、约束(null、not null、[primary] key、unique [key]、check、foreign key)等组合
- 属性:表只能有一个自增列。该列必须具有索引。不能在该列定义defaut值。
- 语句影响:insert 对自增列可以显示的指定其值进行插入,如果插入的值>种子值,则种子值会自动更新为=该插入的值;即使你一次性插大批数据也是只返回该批次第一行自增后的值!
- 语句影响:delete、update 不会影响种子值
- 语句影响:truncate 重置种子值到“1”
- 语句影响:select * from table_name where auto_increment_col_name is NULL 获得最后插入的第一行数据;即使你一次性插大批数据也是只返回该批次第一行自增后的值!是ODBC兼容语法
- 当 向自增列插入NULL时,自增列自增;当 no_auto_value_on_zero=1(enable)时,可以通过向自增列赋值0来产生自增,不推荐!
- 插入值后可以通过 last_insert_id () 返回第一行自增后的值,记住:即使是一批插入多条数据,返回的仍然是第一行的值
- 特殊的:对于myisam表,特殊的对于myisam引擎的表,你可以在一个多列索引上的第二列上定义自增列:他将在第一索引列上产生自增,可以理解为:在第一索引列上分组,计算该组上的最大值,+1。该形式下:(分组)自增列的种子值总是取该列上的分组 最大值——受delete、update、insert影响。最大的用途应该是分组排序吧