zoukankan      html  css  js  c++  java
  • Mysql 主键约束PrimaryKey

    Mysql 主键约束Primary Key

    今天来简单的讲一下主键约束。
    假如有一张学生信息表,里面记录了学生的学号 ,姓名,成绩等,那么,会不会有两个学号相同的学生,答案肯定是否定的,如果有的话也只能是插入信息的时候犯下的错误,那么我们如何去避免这种错误呢,这时候,primary key就发挥作用了。

    下面我们创建一个stu_inform 表

    create table stu_inform(
        id int,
        name varchar(20),
        grade double,
        primary key(id)
    );
    

    这样的话我们就为id 加上了主键约束,我们来插入一个错误的信息

    insert into stu_inform values(1,'张三',100.00),(1,'李四',100.00); -- Error
    

    如果是这样插入的话环境会报出一个错误,这个错误正是主键约束的作用。

    但是如果你也想让姓名也不能相同,你可能会这样写

    create table stu_inform(
        id int,
        name varchar(20),
        grade double,
        primary key(id,name)
    );
    

    接下来我们插入一个数据

    insert into stu_inform values(1,'张三',100.00),(1,'李四',100.00);
    

    你会发现这条语句是完全可行的,是完全没有错误的,这是为什么呢,这是因为这是一个联合主键,它的作用是id不能重复 且 姓名也不能重复,注意是且。

    你如果这样写的话

    insert into stu_inform values(1,'张三',100.00),(1,'张三',100.00);//Error
    

    你如果这样写的话就是大错特错了,因为这违反了联合主键。因为id和姓名同时相同了就是这个道理。

    那么要怎样才能实现id不能相同,同时姓名也不能相同呢,这就是下一篇要讲的unique的作用了。

  • 相关阅读:
    pyqt5 树节点点击实现多窗口切换
    pyglet self.
    itchat key
    python队列Queue
    Python建立多线程任务并获取每个线程返回值
    利用Python实现多线程聊天功能
    Python3.5+PyQt5多线程+itchat实现微信防撤回桌面版代码
    pyglet player sound
    文件打开的几种访问模式
    pyglet StaticSource
  • 原文地址:https://www.cnblogs.com/haodawang/p/5967222.html
Copyright © 2011-2022 走看看