zoukankan      html  css  js  c++  java
  • mysql非主键自增长

    mysql并非只有主键才能自增长,而是设为键的列就可以设置自增长。

    如下:
    1
    2
    3
    4
    CREATE TABLE t1 (
        id INT,
        col1 INT auto_increment NOT NULL
    );
    结果如下:
    mysql非主键自增长 - 怀素真 - 因上努力 果上随缘
     
     如果把col1列设为键,就可以创建自增。
    1
    2
    3
    4
    5
    CREATE TABLE t1 (
        id INT,
        col1 INT auto_increment NOT NULL,
        key(col1)
    );
    结果如下:
    mysql非主键自增长 - 怀素真 - 因上努力 果上随缘
     
     如果我们把id设为主键,仍然可以创建成功。
    1
    2
    3
    4
    5
    CREATE TABLE t2 (
        id INT PRIMARY KEY,
        col1 INT auto_increment NOT NULL,
        key(col1)
    );
    结果如下:
    mysql非主键自增长 - 怀素真 - 因上努力 果上随缘
     
    所以自增列必须是键,但不一定非是主键。但一张表能否有多个自增列?
    答:一张表只能有一个自增列
     
    1
    2
    3
    4
    5
    CREATE TABLE t3 (
        id INT PRIMARY KEY auto_increment,
        col1 INT auto_increment NOT NULL,
        key(col1)
    );
    结果如下:
    mysql非主键自增长 - 怀素真 - 因上努力 果上随缘
     
     
     

    得出的结论为:每张表只能设置一个字段为自增长字段,这个字段可以是主键,也可以不是主键,如果不是主键,则必须设置为一种“键(key)”

    其实,主键(primary key)也是键(key)的一种,key还包括外键(foreign key)、唯一键(unique key)等,关于key的讨论可以查看帖子http://www.cnblogs.com/tanzq/p/9064511.html

  • 相关阅读:
    SpringRequestContext源码阅读
    MyBatis事务管理源码阅读
    linux查找依赖文件
    GitHub
    Qt Quick
    centos7下安装chrome
    软件使用
    排序算法之冒泡排序
    c++学习
    cent6.4使用
  • 原文地址:https://www.cnblogs.com/tanzq/p/9064456.html
Copyright © 2011-2022 走看看