码迷,mamicode.com
首页 > 数据库 > 详细

mysql标识列

时间:2018-02-01 23:18:31      阅读:441      评论:0      收藏:0      [点我收藏+]

标签:ide   desc   var   create   sea   primary   int   code   ret   

#标识列
    /*
    又称为自增长列
    含义:可以不用手动的插入值,系统提供默认的序列值


    特点:
    1、标识列必须和主键搭配吗?不一定,但要求是一个key(也可以是unique)
    2、一个表可以有几个标识列?至多一个!
    3、标识列的类型只能是数值型
    4、标识列可以通过 SET auto_increment_increment=3;设置步长
    可以通过 手动插入值,设置起始值


    */

    #一、创建表时设置标识列
    DROP TABLE IF EXISTS tab_identity;
    CREATE TABLE tab_identity(
        id INT  PRIMARY KEY AUTO_INCREMENT,
        NAME FLOAT UNIQUE,
        seat INT 


    );

    DROP TABLE IF EXISTS tab_identity;
    CREATE TABLE tab_identity(
        id INT  ,
        NAME FLOAT UNIQUE AUTO_INCREMENT,
        seat INT 


    );
    TRUNCATE TABLE tab_identity;

    # 要么 带着所有的字段,插入时,自增长列对应插入null
    INSERT INTO tab_identity(id,NAME) VALUES(NULL,‘john‘);

    #要么 不带自增长列,插入时只插别的字段
    INSERT INTO tab_identity(NAME) VALUES(‘lucy‘);
    SELECT * FROM tab_identity;

    # 自增长列默认从1开始递增,步长为1
    SHOW VARIABLES LIKE ‘%auto_increment%‘; 
    # auto_increment_increment:步长
    # auto_increment_offset:起始位置(mysql中不能人为设置)


    SET auto_increment_increment=3; #  设置步长



    #如果想自己设置起始位置:10
    #先执行下一句通过 手动插入值,设置起始值
    INSERT INTO tab_identity(id,NAME) VALUES(10,‘john‘);
    #然后 和以前一样,插入多行下一句:
    INSERT INTO tab_identity(NAME) VALUES(‘lucy‘);

    #二、修改表时设置标识列

    DROP TABLE IF  EXISTS test;
    CREATE TABLE test(
        id INT PRIMARY KEY,
        NAME VARCHAR(20)
    );

    ALTER TABLE test MODIFY COLUMN id INT  AUTO_INCREMENT;

    INSERT INTO test VALUES (NULL,‘aaa‘);
    SELECT * FROM test;

    TRUNCATE TABLE test; #清空表,注意与DROP TABLE IF  EXISTS test; 的区别,一个是清空,另一个删除

    SHOW VARIABLES LIKE ‘%auto_increment%‘;
    SET auto_increment_increment = 2;

    INSERT INTO test VALUES(5,‘haha‘);
    INSERT INTO test VALUES(NULL,‘haha‘);#运行多次该句
    SELECT * FROM test; # 结果是 id = 5,7,9.... 

    DESC test;

    #二、修改表时删除标识列
    ALTER TABLE test MODIFY COLUMN id INT ;
    DESC test;

mysql标识列

标签:ide   desc   var   create   sea   primary   int   code   ret   

原文地址:https://www.cnblogs.com/ldwnana/p/8401426.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!