zoukankan      html  css  js  c++  java
  • JDBC 复习5 mysql 的自增长主键 auto_increment

    MySQL 自增长主键

    (1)如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。
    (2)把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样。但不建议这样做,还是以插入NULL值为好。
    (3)当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值。
    (4)当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则会出现两种情况,情况一,如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;情况二,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。
    (5)如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错。如果大于已有值,则下一个编号从该值开始递增。
    

    测试代码

    项目结构(记得添加mysql的驱动jar包)

    数据库连接配置文件

    建表

    package dbex.mysql;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import dbex.DBUtil;
    
    /**
     * 
     * @ClassName: AutoKey 
     * @Description: 测试mysql 的 自增长主键
     * @author penny
     * @date 2017年11月29日 下午1:07:17 
     *
     */
    public class AutoKey {
    
    	void doAuto() throws SQLException, IOException{
    		Connection conn = DBUtil.getConnection();
    		PreparedStatement ppst = null;
    		ResultSet rs = null;
    		
    		try {
    			ppst = conn.prepareStatement("insert into auto_key(txt) values('testAuto')");
    			for (int i = 0; i <100; i++) {
    				ppst.addBatch();
    			}
    			ppst.executeBatch();
    			ppst= conn.prepareStatement("select * from auto_key");
    			rs = ppst.executeQuery();
    			while(rs.next()){
    				System.out.println(rs.getInt(1)+"	"+rs.getString(2));
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally{
    			DBUtil.closeAll(conn, ppst, rs);
    		}
    	}
    	public static void main(String[] args) throws SQLException, IOException {
    		new AutoKey().doAuto();
    	}
    }
    
    

    效果展示

  • 相关阅读:
    C语言II作业01
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    C语言I博客作业12—学期总结
    第一次作业
    C语言I博客作业02
    C语言I博客作业11
    C语言||作业01
  • 原文地址:https://www.cnblogs.com/humi/p/7919937.html
Copyright © 2011-2022 走看看