zoukankan      html  css  js  c++  java
  • 133标识列

    #标识列
    /*
    又称为自增长列
    含义:可以不用手动的插入值,系统提供默认的序列值
    
    
    好处:不用我们自己插入值,也不用关心值是否重复的问题。因为它肯定不重复。它默认的起始值是1
    
    特点:
    1、标识列必须和主键搭配吗?不一定,但要求是一个key
    DROP TABLE IF EXISTS tab_identity;
    CREATE TABLE tab_identity(
        id INT  AUTO_INCREMENT,
        NAME varchar(20)    #unique--唯一键,也是一个key
        
    );
    图1
    2、一个表可以有几个标识列?至多一个!
    DROP TABLE IF EXISTS tab_identity;
    CREATE TABLE tab_identity(
        id INT  AUTO_INCREMENT,
        NAME varchar(20),    
        seat INT UNIQUE AUTO_INCREMENT
        
    );
    图2
    3、标识列的类型只能是数值型(int,float,double...),只不过一般是int
    DROP TABLE IF EXISTS tab_identity;
    CREATE TABLE tab_identity(
        id INT, 
        NAME varchar(20) AUTO_INCREMENT,    
        seat INT 
        
    );    
    图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 AUTO_INCREMENT,
        
    );
    TRUNCATE TABLE tab_identity;
    
    INSERT INTO tab_identity(id,NAME) VALUES(NULL,'john');    #为了保证值与字段数一致,需要插入null
    INSERT INTO tab_identity(NAME) VALUES('lucy');
    SELECT * FROM tab_identity;
    
    
    SHOW VARIABLES LIKE '%auto_increment%';
    auto_increment_increment #步长,每次增长的值。默认每次增长1
    auto_increment_increment #偏移量,默认是1.即:起始值是1.不能被修改(其实也可以被修改,例如下),设置成其他值也没有效果,默认还是1
    
    例:
    TRUNCATE TABLE tab_identity;
    
    INSERT INTO tab_identity(id,NAME) VALUES(10,'john');    #相当于把起始值(id)修改为了10
    INSERT INTO tab_identity(id,NAME) VALUES(NULL,'john');    #id=11
    
    
    
    SET auto_increment_increment=3;    #(1,4,7,10,13,16,...),一旦修改了代表当前连接下的所有值都被修改了
    
    
    #二、修改表时设置标识符
    DROP TABLE IF EXISTS tab_identity;
    CREATE TABLE tab_identity(
        id INT,
        NAME float,    
        seat INT
        
    );
    alter table tab_identity modify column id int primary key AUTO_INCREMENT;
    
    #三、修改表时删除标识列
    
    alter table tab_identity modify column id int PRIMARY KEY;
  • 相关阅读:
    Flask + vue 前后端分离的 二手书App
    Kafka 0.10.0.1 consumer get earliest partition offset from Kafka broker cluster
    Kafka topic Schema version mismatch error
    ORM的多表查询详述
    ORM多表操作之创建关联表及添加表记录
    ORM的单表操作
    Django的模板层简介
    Django的视图层简介
    Django中的路由配置简介
    Django简介及Django项目的创建详述
  • 原文地址:https://www.cnblogs.com/tan-y-q/p/10624144.html
Copyright © 2011-2022 走看看