随笔 - 746  文章 - 0  评论 - 39  阅读 - 79万

Mysql:语法:自增列

  1. 属性:自增列不必是:唯一的、primary、正数、bigint
  2. 属性:auto_increment 是mysql在表列定义中的一个可选属性,和默认值属性冲突。
  3. 属性:必须定义在该列上的索引!
  4. 属性:应用于number类型的列:包括各种整数、浮点数、定点数
  5. 属性:自增列可以和普通的数字类型属性(unsigned、zerofill的)、约束(null、not null、[primary] key、unique [key]、check、foreign key)等组合
  6. 属性:表只能有一个自增列。该列必须具有索引。不能在该列定义defaut值。
  7. 语句影响:insert 对自增列可以显示的指定其值进行插入,如果插入的值>种子值,则种子值会自动更新为=该插入的值;即使你一次性插大批数据也是只返回该批次第一行自增后的值!
  8. 语句影响:delete、update 不会影响种子值
  9. 语句影响:truncate 重置种子值到“1”
  10. 语句影响:select * from table_name where auto_increment_col_name is NULL 获得最后插入的第一行数据;即使你一次性插大批数据也是只返回该批次第一行自增后的值!是ODBC兼容语法
  11. 当 向自增列插入NULL时,自增列自增;当 no_auto_value_on_zero=1(enable)时,可以通过向自增列赋值0来产生自增,不推荐!
  12. 插入值后可以通过 last_insert_id () 返回第一行自增后的值,记住:即使是一批插入多条数据,返回的仍然是第一行的值
  13.  特殊的:对于myisam表,特殊的对于myisam引擎的表,你可以在一个多列索引上的第二列上定义自增列:他将在第一索引列上产生自增,可以理解为:在第一索引列上分组,计算该组上的最大值,+1。该形式下:(分组)自增列的种子值总是取该列上的分组 最大值——受delete、update、insert影响。最大的用途应该是分组排序吧
posted on   jinzhenshui  阅读(1959)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)

点击右上角即可分享
微信分享提示