`

Mysql的联合主键

阅读更多

摘要: MySQL的联合主键:用2个字段(或者多个字段,后面具体都是用2个字段组合)来确定一条记录,说明,这2个字段都不是唯一的,2个字段可以分别重复,这么设置的好处,可以很直观的看到某个重复字段的记录条数。

mysql的联合主键:用2个字段(或者多个字段,后面具体都是用2个字段组合)来确定一条记录,说明,这2个字段都不是唯一的,2个字段可以分别重复,这么设置的好处,可以很直观的看到某个重复字段的记录条数。

在mysql当中我们经常认为主键只能设置一个,那如果我们想设置两个呢?如下图:

CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date` varchar(25) DEFAULT NULL,
`sess_id` varchar(255) DEFAULT NULL,
`keyword` varchar(25) NOT NULL,
`url_n` varchar(3) DEFAULT NULL,
`s_n` varchar(3) DEFAULT NULL,
`select_url` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`,`keyword`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

 

那这样的话我们就创建了这个联合主键id和keyword  。但是需要注意的是引擎必须是Myisam。这个是联合主键的创建,那删除呢?

删除也是非常简单只要:

 

ALTER TABLE test DROP PRIMARY KEY ,ADD PRIMARY KEY (`id`);
如果你仅仅是删除联合主键会报错:

ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
原文链接
分享到:
评论

相关推荐

    MySQL 创建主键,外键和复合主键的语句

    本文将详细介绍如何在MySQL中创建主键、外键以及复合主键。 1. **创建主键** 主键是数据库表中一个或一组字段,其值在全表中具有唯一性,并且不能为空。它用于唯一标识表中的每一行记录。在MySQL中,创建主键的...

    MYSQL随机抽取查询 MySQL Order By Rand()效率问题

    总之,当面临MySQL中的随机查询效率问题时,避免在`ORDER BY`子句中直接使用`RAND()`函数,而是利用主键和`RAND()`结合的方式,或者采用`JOIN`操作,可以显著提升查询速度。在实际应用中,应根据具体场景和数据量...

    MySQL分区字段列有必要再单独建索引吗?

    在MySQL数据库中,分区是一种优化查询性能的技术,它将大表的数据分成多个逻辑部分,每个部分对应表的一个或多个分区。通常,分区字段是主键的一部分,以确保数据分布均匀并提高查询效率。然而,问题在于,如果一个...

    sql中设置联合主键的具体方法

    代码如下: ALTER TABLE 表名字 ADD CONSTRAINT pk_表名字 PRIMARY KEY( SNumber, SDate );... 您可能感兴趣的文章:sql server创建复合主键的2种方法MySQL 创建主键,外键和复合主键的语句初探SQL语句复合主键与联合主键

    MySql 联合修改

    ### MySQL联合修改详解 在MySQL数据库管理中,有时我们需要对两个或多个表中的数据进行同时更新,这种情况就涉及到了所谓的“联合修改”。本篇文章将基于一个具体的案例来深入探讨MySQL中联合修改的操作方法及其...

    MySQL 主键与索引的联系与区别分析

    其中,主键与索引作为MySQL中不可或缺的两个概念,对于数据库的设计、维护与查询性能优化起着至关重要的作用。本文将深入探讨MySQL中主键与索引的联系与区别,以及它们对数据库性能的影响。 主键是表结构中的一列或...

    mysql多表联合查询.pdf

    在给定的文件中,我们可以看到有关MySQL多表联合查询的知识点。首先,文件包含了创建和操作MySQL数据库表的SQL语句,接着是使用INSERT语句向表中插入数据的示例,最后是一些使用PHP通过MySQL扩展连接数据库进行操作...

    mysql高级参考课件(供实操参考).zip

    - 联接操作:包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN),以及自连接,理解不同连接类型在数据联合中的应用场景。 - 视图:创建虚拟表,简化复杂的查询,并保护数据安全...

    行政区划码 mysql

    2. 表设计:在MySQL中,可以创建一个专门的`regions`表来存储这些信息,包含字段如`id`(主键)、`code`(行政区划码)、`name`(区域名称)、`parent_id`(父级区域ID,用于构建层级关系)等。 3. 数据导入:`es_...

    mysql必知必会PDF和随书源码

    此外,可以使用SELECT语句进行复杂查询,包括联合查询、子查询、分组和排序等。 4. **索引**:索引是提高查询性能的关键,通过创建索引可以加速数据检索。MySQL支持B-Tree、Hash、R-Tree等多种类型的索引。 5. **...

    mysql中or是否走索引详解

    如果`OR`条件下的列都在同一个索引中,MySQL可以仅通过索引来获取数据,而无需回表到主键,这被称为“索引覆盖”。 3. **复合索引与`OR`** 对于复合索引(多列索引),`OR`条件的处理更加复杂。如果`OR`涉及到复合...

    mysql面试题,涉及MySQL基础、MySQL索引、MySQL语句 MySQL进阶等方面,适用于初、中级开发人员

    索引下推(Index Condition Pushdown,简称 ICP)是 MySQL 5.6 版本的新特性,可以在对联合索引遍历过程中,对索引中包含的所有字段先做判断,过滤掉不符合条件的记录之后再回表,能有效的减少回表次数。 5. 索引...

    MySQL数据库学习教程从入门到进阶全套笔记

    主键约束在【MySQL学习6】中被讨论,它是表中唯一标识每条记录的关键字段,可以是单列或联合主键。【MySQL学习7】介绍了自增长约束,自动为字段分配唯一的递增数值。 【MySQL学习8】至【MySQL学习10】讨论了非空...

    腾讯MySQL使用规范

    每个表必须有明确的主键,并且禁止使用联合主键和外键。此外,对于数据量较大的表,建议控制在500W以内,字段数量也应控制在20个以内,以保持数据库的高效运行。禁止在数据库中存储二进制数据,如图片、视频和文件等...

    MySQL DBA运维笔记 超详细

    8.3 创建索引:讲解如何为表字段创建索引,包括主键索引、普通索引和联合索引等,以及索引对查询性能的影响。 以上内容对MySQL数据库的管理和操作进行了全面的介绍和说明,对于数据库管理员或数据库操作者来说,...

    mysql语言的基本操作流程

    PRIMARY KEY (列名) // 主键,每个表最多只能有一个 ); ``` #### 示例 创建一个包含自动增长ID字段、姓名、性别和年龄的教师表: ```sql create table teacher( ID int auto_increment, Name varchar(20), Sex ...

    mysql性能的优化

    ### MySQL性能优化详解 #### 一、什么是MySQL优化? MySQL优化是指通过合理安排资源和调整系统参数,使得MySQL运行得更快、更节省资源的过程。优化的目的在于减少系统瓶颈,降低资源消耗,提升系统的响应速度。 #...

    mysql的索引优化

    假设我们需要频繁查询`firstname`和`lastname`字段,那么可以考虑在这两个字段上创建一个联合索引: ```sql ALTER TABLE people ADD INDEX idx_firstname_lastname (firstname, lastname); ``` 这样,当执行类似于...

    mysql数据库以及索引详解.pptx

    - 联合索引未使用第一个索引列。 - 字符串类型的列在条件中未正确使用引号。 - 组合索引中有列值为NULL。 - 在一个SELECT语句中,索引只能使用一次(如在WHERE中使用后,在ORDER BY中不再有效)。 - 在查询条件中...

Global site tag (gtag.js) - Google Analytics