假设有数据库表student,表中有字段studentCode,它是字符型的,现有需求:“每次向student表插入数据时,自动生成studentCode字段的值”


如果你的实现思路是这样的:

if(student表为空){
待插入数据studentCode字段的值设置为1;
}else{
查询出表中studentCode字段的最大值max;
待插入数据studentCode字段的值设置为max+1;
}
将数据插入student表;

你可能使用以下SQL语句查询studentCode字段的最大值:

SELECT MAX(studentCode) FROM `student`

测试一下程序,试着插入几条数据:

 插入第1条数据:studentCode == 1
插入第2条数据:studentCode == 2
插入第3条数据:studentCode == 3
插入第4条数据:studentCode == 4
插入第5条数据:studentCode == 5
插入第6条数据:studentCode == 6
插入第7条数据:studentCode == 7
插入第8条数据:studentCode == 8
插入第9条数据:studentCode == 9
插入第10条数据:studentCode == 10
插入第11条数据:studentCode == 10
插入第12条数据:studentCode == 10
插入第13条数据:studentCode == 10

最开始插入前10条数据studentCode字段的值还是正常的,可是从第11条数据开始,为什么studentCode字段的值全不变了呢?

原因就是studentCode字段是字符型的,从指定第11条数据的插入操作开始,SELECT MAX(studentCode) FROM `student` 的结果将永远是9,所以就导致了最终设置的studentCode的值永远是10.

解决办法:类型转换

 SELECT MAX(CONVERT(studentCode,INT)) FROM `student`

最新文章

  1. Junit mockito解耦合测试
  2. 基于Node的PetShop,oauth2认证RESTful API
  3. RichTextBox文字处理控件属性介绍
  4. 对于PKI(公钥基础结构)及证书服务的通俗理解
  5. 设计模式:适配器模式(Adapter)
  6. kafka介绍和集群环境搭建
  7. WordPress 实用SEO插件总结
  8. Linux Kernel 2.6.28 以上有BUG,系统运行第208.5天down机
  9. 细说WPF数据绑定
  10. node.js零基础详细教程(7):node.js操作mongodb,及操作方法的封装
  11. Mybatis插件原理分析(三)分页插件
  12. SQL Server 一张图让你秒懂联合表查询
  13. Codeforces 979E Kuro and Topological Parity - 动态规划 - 组合数学
  14. Codeforces 987E Petr and Permutations(数组的置换与复原 、结论)
  15. 【POI每日题解 #6】KRA-The Disks
  16. Java 5- Java 修饰符
  17. 使用nohup后台执行ftp传输命令
  18. CSS transform中的rotate的旋转中心怎么设置
  19. Thinkphp CURD中的where方法
  20. Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.threadpool.ThreadPool

热门文章

  1. 【iOS知识学习】_int、NSInteger、NSUInteger、NSNumber的差别和联系
  2. H3C路由器Telnet服务配置命令(续)
  3. 虎牙在全球 DNS 秒级生效上的实践
  4. centos6 名字服务dnsmasq配置
  5. Python3:ImportError: No module named 'compiler.ast'
  6. 分布式TensorFlow集群local server使用详解
  7. linux用户权限管理, chmod, ln
  8. HDU 1071
  9. linux常用命令速记
  10. java 使用反射调用方法