mysql中可以通过“ALTER TABLE 表名 ADD PRIMARY KEY(字段名);”语句在修改数据表时添加主键约束;当在修改表时要设置表中某个字段的主键约束时,要确保设置成主键约束的字段中值不能够有重复的,并且要保证是非空的。

(推荐教程:mysql视频教程)

主键(PRIMARY KEY)的完整称呼是“主键约束”,是 MySQL 中使用最为频繁的约束。一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一个主键。

在创建表时设置主键约束

在 CREATE TABLE 语句中,通过 PRIMARY KEY 关键字来指定主键。

在定义字段的同时指定主键,语法格式如下: PRIMARY KEY [默认值]

示例

在 test_db 数据库中创建 tb_emp3 数据表,其主键为 id,SQL 语句和运行结果如下。mysql> CREATE TABLE tb_emp3

-> (

-> id INT(11) PRIMARY KEY,

-> name VARCHAR(25),

-> deptId INT(11),

-> salary FLOAT

-> );

Query OK, 0 rows affected (0.37 sec)

mysql> DESC tb_emp3;

+--------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+--------+-------------+------+-----+---------+-------+

| id | int(11) | NO | PRI | NULL | |

| name | varchar(25) | YES | | NULL | |

| deptId | int(11) | YES | | NULL | |

| salary | float | YES | | NULL | |

+--------+-------------+------+-----+---------+-------+

4 rows in set (0.14 sec)

在修改表时添加主键约束

主键约束不仅可以在创建表的同时创建,也可以在修改表时添加。但是需要注意的是,设置成主键约束的字段中不允许有空值。

在修改数据表时添加主键约束的语法格式如下:ALTER TABLE ADD PRIMARY KEY();

通常情况下,当在修改表时要设置表中某个字段的主键约束时,要确保设置成主键约束的字段中值不能够有重复的,并且要保证是非空的。否则,无法设置主键约束。

示例

查看 tb_emp2 数据表的表结构,SQL 语句和运行结果如下所示。mysql> DESC tb_emp2;

+--------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+--------+-------------+------+-----+---------+-------+

| id | int(11) | NO | | NULL | |

| name | varchar(30) | YES | | NULL | |

| deptId | int(11) | YES | | NULL | |

| salary | float | YES | | NULL | |

+--------+-------------+------+-----+---------+-------+

4 rows in set (0.14 sec)

修改数据表 tb_emp2,将字段 id 设置为主键,SQL 语句和运行结果如下。mysql> ALTER TABLE tb_emp2

-> ADD PRIMARY KEY(id);

Query OK, 0 rows affected (0.94 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> DESC tb_emp2;

+--------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+--------+-------------+------+-----+---------+-------+

| id | int(11) | NO | PRI | NULL | |

| name | varchar(30) | YES | | NULL | |

| deptId | int(11) | YES | | NULL | |

| salary | float | YES | | NULL | |

+--------+-------------+------+-----+---------+-------+

4 rows in set (0.12 sec)

mysql数据库怎么添加主键约束_mysql修改表时怎么添加主键约束?相关推荐

  1. 如何增加mysql主键约束_mysql修改表时怎么添加主键约束?

    mysql中可以通过"ALTER TABLE 表名 ADD PRIMARY KEY(字段名);"语句在修改数据表时添加主键约束:当在修改表时要设置表中某个字段的主键约束时,要确保设 ...

  2. mysql建表时主键_mysql建表时怎么设置主键?

    设置方法:在"CREATE TABLE"语句中,通过"PRIMARY KEY"关键字来指定主键,语法格式"字段名 数据类型 PRIMARY KEY [ ...

  3. mysql 删除表时外键约束_MySQL删除表的时候忽略外键约束的简单实现

    删除表不是特别常用,特别是对于存在外键关联的表,删除更得小心.但是在开发过程中,发现Schema设计的有问题而且要删除现有的数据库中所有的表来重新创建也是常有的事情:另外在测试的时候,也有需要重新创建 ...

  4. mysql建表后添加约束_MYSQL建表完成之后添加约束

    1.主键约束 添加:alter table table_name add primary key (字段) 删除:alter table table_name drop primary key 2.非 ...

  5. mysql修改字段结构_MySQL修改表结构及其添加删除修改字段功能

    MySQL修改表结构添加删除修改字段 创建数据库CREATE DATABASE database_name 创建表CREATE TABLE `user` ( `id` int(11) unsigned ...

  6. mysql 没设置主键_MySQL建表时不设置主键

    在mysql的技术文档里面有如下文字: If you do not define a PRIMARY KEY for your table, MySQL picks the first UNIQUE  ...

  7. mysql建表时主键_mysql建表时设置主键的方法

    mysql建表时设置主键的方法 发布时间:2020-10-10 15:17:28 来源:亿速云 阅读:119 作者:小新 mysql建表时设置主键的方法?这个问题可能是我们日常学习或工作经常见到的.希 ...

  8. qsql 关联_QTableView与QSqlTableModel显示mysql数据库中的数据,怎么在QTableView的项中添加chekbox按钮与上拉列表啊真心求指导...

    QTableView与QSqlTableModel显示mysql数据库中的数据,如何在QTableView的项中添加chekbox按钮与下拉列表啊?真心求指导. 各位大侠好,利用QTableView与 ...

  9. mysql 主从 索引_Mysql繁忙主从库在线修改表结构与添加索引问题

    本帖最后由 jan_1985 于 2014-1-15 13:28 编辑 Mysql繁忙主从库在线修改表结构与添加索引问题 一直以来,生产情况下都有修改索引和修改字段的需求,但是对锁表引起的访问不便是会 ...

最新文章

  1. 单v100 GPU,4小时搜索到一个鲁棒的网络结构
  2. python windows编程_在Windows下配置Python编程学习环境
  3. 【读书笔记-数据挖掘概念与技术】聚类分析:基本概念和方法
  4. Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
  5. JDBC批量操作批量增加批量修改
  6. [剑指offer][JAVA][第62题][约瑟夫环][LinkedList vs ArrayList]
  7. 不好,两群AI打起来了!“幕后主使”是上海交大~
  8. typescript面试题_vue 248+个知识点(面试题)为你保驾护航
  9. 解读机器人编程入门指南
  10. 重温张柏芝08年博客_开发人员和运营人员将在2017年继续重温其在企业中的角色...
  11. 基于java学生信息管理系统
  12. 【字节跳动】 https://job.bytedance.com/campus 内推码:MZ9BJHD 电话:13855119574 邮箱:yinxiang.stephen@bytedance.com
  13. 配置高可用(名称节点高可用)
  14. Creo 产品高级装配视频教程
  15. Oracle数据库实验四查询实验三(Oracle 11g)
  16. html制作统计期末成绩,利用Excel制作学生成绩表
  17. 关于Java背后的故事
  18. 【神策数据面试】手撕题
  19. 基于Rplidar二维雷达使用Hector_SLAM算法在ROS中建图
  20. 批量自动下单(1688)

热门文章

  1. C++ OpenGL学习——入门篇
  2. 前端工作一年半,离职了!!!
  3. 东南大学 计算机学院 夏令营,东南大学计算机科学与工程学院计算机技术(专业学位)保研夏令营...
  4. 天哪又要搬家啦qvq
  5. matlab实现鬼波信号压制算法  代码实践--第二篇 频率-波数域鬼波压制
  6. web中什么是静态资源和动态资源
  7. 股市买入卖出时间点选择问题
  8. 《C语言》22-23第一学期后十周教学计划(谭浩强第五版)
  9. 【数据库】下列查询结果是什么? 已知关系模式:S(Sno,Sname,Sclass),C(Cno,Cname,Cteacher),SC(Sno,Cno,Scgrade)。其中,S为学生关系:Sno学号
  10. 专利申请的流程和时间