iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL创建主键
  • 555
分享到

MySQL创建主键

MySQL创建主键 2020-06-07 16:06:53 555人浏览 无得
摘要

Mysql InnoDB 存储引擎是必须要有一个主键的,主键可以是一个字段或者多个字段,通常建议:主键就一个、主键字段和业务无关、主键字段最好是自增且字段较小(原因:索引原理)。 创建主键的三种方式: 在建表语句字段后指定 PRIMARY

MySQL创建主键

Mysql InnoDB 存储引擎是必须要有一个主键的,主键可以是一个字段或者多个字段,通常建议:主键就一个、主键字段和业务无关、主键字段最好是自增且字段较小(原因:索引原理)。

创建主键的三种方式:

  1. 在建表语句字段后指定 PRIMARY KEY 关键字设置主键,这种方式只能定义主键为一个字段的情况,如下所示:
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT "自增主键",
`name` varchar(32) DEFAULT "" COMMENT "名字"
) ENGINE=InnoDB CHARSET=utf8 COMMENT ="用户信息表";
  1. 在建表语句之后,指定 PRIMARY KEY(column1,column2),这种方式可以定义主键为多个字段的情况,如下所示:
CREATE TABLE `t_user` (
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT "自增主键",
`name` varchar(32) DEFAULT "" COMMENT "名字",
PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8 COMMENT ="用户信息表";

我个人开发中更常用这种方式

  1. 上面的两个建表语句,如果不在建表的时候就指定主键,会报错 Incorrect table definition; there can be only one auto column and it must be defined as a key,这个报错并非是 InnoDB 强制约束建表语句一定要指定主键,而是因为建表语句中存在自增 AUTO_INCREMENT 的字段,导致建表语句就必须指定主键,去掉自增建表语句不指定主键也是可以的,然后使用 ALTER TABLE 添加主键(这种方式开发用得很少,DBA重建索引可能会用到),如下所示:
CREATE TABLE MEIZU_OPENROM.`t_user` (
`id` int(11) NOT NULL COMMENT "主键",
`name` varchar(32) DEFAULT "" COMMENT "名字"
) ENGINE=InnoDB CHARSET=utf8 COMMENT ="用户信息表";

ALTER TABLE `t_user` ADD PRIMARY KEY (`id`);

主键一旦创建,就不能再次添加,一个表如果已经存在主键,再次执行 ALTER TABLE .. ADD PRIMARY KEY (..),会提示定义多个主键的错误: Error Code: 1068. Multiple primary key defined

针对第三种建表的情况,如果建表的时候不指定主键,根据索引原理,mysql InnoDB 存储引擎是必须要有一个主键的,那么,默认会使用什么作为主键呢?默认是不会有主键的,结果就是 insert 可以插入数据,但是 selectupdate 会报错,只有当添加主键之后,才可以selectupdate

Tips:查看索引

查看当前表建立了哪些索引:

show index from table_name
您可能感兴趣的文档:

--结束END--

本文标题: MySQL创建主键

本文链接: https://www.lsjlt.com/news/6302.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql创建主键的方法有哪些
    在MySQL中创建主键的方法有以下几种: 在创建表时指定主键约束: CREATE TABLE table_name ( id...
    99+
    2024-04-09
    mysql
  • MySQL:创建数据库,数据表,主键和外键
    目录 前言: 安装MySQL: 打开MySQL: 创建数据库: 查看已建数据库: 查看数据库引擎: 创建数据表:  主键约束: 单字段主键: 多字段联合主键: 外键约束: 前言: MySQL数据库安装了很久,一直也没静下心来学习,因为起...
    99+
    2023-10-18
    mysql 数据库
  • mysql有主键还需要创建索引吗
    小编给大家分享一下mysql有主键还需要创建索引吗,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql主键不需要建立索引,主键具备索引的功能;当创建或设置主键的时候,mysql会自动添加一...
    99+
    2024-04-02
  • mysql多字段联合主键怎么创建
    在MySQL中,可以通过在CREATE TABLE语句中使用PRIMARY KEY关键字来定义多字段联合主键。以下是一个示例: CR...
    99+
    2024-04-09
    mysql
  • mysql创建联合主键的方法有哪些
    在MySQL中,可以使用以下方法创建联合主键: 在创建表时指定多个列作为主键: CREATE TABLE table_name ...
    99+
    2024-04-09
    mysql
  • MySQL创建数据表并建立主外键关系详解
    前言 为mysql数据表建立主外键需要注意以下几点: 需要建立主外键关系的两个表的存储引擎必须是InnoDB。 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。 外键列和参照列...
    99+
    2024-04-02
  • oracle怎么创建主键约束
    要在Oracle数据库中创建主键约束,可以使用以下语法: ALTER TABLE table_name ADD CONSTRAINT...
    99+
    2024-04-09
    oracle
  • sql联合主键如何创建
    在创建表时,可以通过使用PRIMARY KEY关键字来指定联合主键。以下是一个示例: CREATE TABLE 表名 ( 列...
    99+
    2023-10-24
    sql
  • 数据库MySQL创建表定义主键 (新手必看)
    用wampsever64控制台创建数据表定义主键 方法一: 这时候会出现单引号问题,这时候把单引号用这个 换好后问题就解决了   方法二: 把主键定...
    99+
    2024-04-02
  • SQL Server主键约束怎么创建
    这篇“SQL Server主键约束怎么创建”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看...
    99+
    2024-04-02
  • mysql主键和外键怎么建立
    在 MySQL 数据库中,主键和外键是用来建立表与表之间关系的重要工具。主键用于唯一标识一条记录,而外键则用来建立表与表之间的关联关...
    99+
    2024-04-23
    mysql
  • navicat premium中创建主键的方法
    小编给大家分享一下navicat premium中创建主键的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!点击打开“连接”,输入密码,点击确定。右键“localhost3306”点击打开连...
    99+
    2024-04-02
  • sql创建表如何设置主键
    在SQL中,可以通过使用`PRIMARY KEY`关键字来设置主键。主键是一列或一组列,用于唯一标识表中的每一行数据。以下是创建表并...
    99+
    2023-09-26
    sql
  • plsql怎么创建表设置主键
    在PL/SQL中创建表并设置主键,可以使用CREATE TABLE语句和ALTER TABLE语句。以下是一个示例: 1、创建表并设...
    99+
    2024-04-09
    plsql
  • mysql创建表,设置表主键id从1开始自增
    一.问题描述 当我们在做项目的时候,创建一张用户表,如何让该表的主键id从0开始自增?网上搜索了很多解决方案,最后发现了一种方法必实现且有效的方案。下面就来介绍实现方法 二.解决方案 1.实现步骤 (1)创建一张新表,规定好自增...
    99+
    2023-09-02
    java mysql idea mybatis Powered by 金山文档
  • 如何在SQLite中创建主键和外键约束
    在SQLite中,可以通过以下方式创建主键和外键约束: 创建主键约束: CREATE TABLE table_name ( ...
    99+
    2024-04-09
    SQLite
  • oracle创建主键的方法是什么
    在 Oracle 数据库中,可以使用以下两种方法来创建主键: 在表的创建过程中定义主键约束: CREATE TABLE table...
    99+
    2024-04-09
    oracle
  • mysql主从的创建方法
    这篇文章主要介绍“mysql主从的创建方法”,在日常操作中,相信很多人在mysql主从的创建方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql主从的创建方法”的疑惑...
    99+
    2024-04-02
  • 怎么在mysql中创建外键
    在mysql中创建外键的方法:1.启动mysql;2.登录mysql数据库;3.进入数据库;4.新建表并设置外键;5.使用show create table命令查看外键;具体步骤如下:首先,在命令行中启动mysql服务;service my...
    99+
    2024-04-02
  • mysql创建表外键怎么写
    在 mysql 中,可通过以下步骤创建表外键:创建父表和子表,并确保父表存在相应列。使用 foreign key 约束将子表中的列与父表中的列关联。可选地指定级联操作,定义删除或更新父表...
    99+
    2024-04-22
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作