zoukankan      html  css  js  c++  java
  • MySQL之外键、主键、自增

    1、创建外键

    create table userinfo(
      uid int auto_increment primary key,
      name varchar(32),
      department_id int,
      xx_id int,
      constraint fk_user_depar foreign key (“department_id”) references color(“id”)
    )engine=innodb default charset=utf8; 
    
    create table department(   
      id bigint auto_increment primary key,   
      title char(15) 
    )engine=innodb default charset=utf8;
    View Code

     2、补充主键:

      一个表只能有一个主键

      主键可以由多列组成:

       
    create table t1(
        nid int(11) not null auto_increment,
        pid int(11) not null ,
        num int(11) null,
        primary key(nid,pid)
    ) engine=InnoDB default charset=utf8;
    View Code

    例:

    CREATE TABLE t5 (
      nid int(11) NOT NULL AUTO_INCREMENT,
      pid int(11) not NULL,
      num int(11),
      primary key(nid,pid)    #此时nid,pid整体作为主键,下面就可以整体进行关联
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    create table t6(
      id int auto_increment primary key,
      name char(10),
      id1 int,
      id2 int,
      CONSTRAINT fk_t5_t6 foreign key (id1,id2) REFERENCES t1(nid,pid)    #nid,pid整体作为主键(这个是前提条件),所以这里关联了两个
    )engine=innodb default charset=utf8;

    注:上面foreign key的名字fk_t5_t6不能重复

     3、自增补充

      上面的AUTO_INCREMENT=4表示下一次插入数据的时候id从4开始自增,如果想要定制从10开始自增:

    alter table t10 AUTO_INCREMENT=10;

    MySQL:自增步长

    3.1基于会话级别:(*****)

    一次mysql登录就是一次会话,在当前mysql中设置了步长,再打开一个新的mysql后,新的mysql中步长还是默认为1

    3.1.1 show session variables like 'auto_inc%'; 查看全局的步长,默认为1

    可以知道步长为1

    3.1.2 set session auto_increment_increment=2; 设置会话步长

    可以看出全局步长被设置为2

     

    添加数据id的步长就按照2增加

    3.1.3 # set session auto_increment_offset=10; 设置会话起始值,一般用不到,因为我们在表中已经规定好了

     3.2 基于全局级别

    在当前全局中修改步长之后,再开会话(打开新的mqsql)都会以你设置的全局步长默认设置,不推荐此种方式

     3.2.1 show global variables like 'auto_inc%';     查看全局变量

              set global auto_increment_increment=2;     设置会话步长

       # set global auto_increment_offset=10;      设置全局起始值

  • 相关阅读:
    笔记-归并排序
    Repeated Substring Pattern
    Assign Cookies
    Number of Boomerangs
    Paint Fence
    Path Sum III
    Valid Word Square
    Sum of Two Integers
    Find All Numbers Disappeared in an Array
    First Unique Character in a String
  • 原文地址:https://www.cnblogs.com/zh-xiaoyuan/p/11869009.html
Copyright © 2011-2022 走看看