精华内容
下载资源
问答
  • 数据库的单个数据中只能有一个主键。数据库主键,指的是一个或多列的组合,其值能唯一地标识中的每一行,通过它可强制的实体完整性;主键主要是用与其他的外键关联,以及本记录的修改与删除。数据库的单个...

    数据库的单个数据表中只能有一个主键。数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性;主键主要是用与其他表的外键关联,以及本记录的修改与删除。

    4de34d12abcfac82c43c135eac5ca543.png

    数据库的单个数据表中只能有一个主键。

    数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。主键主要是用与其他表的外键关联,以及本记录的修改与删除。

    1、数据库的每张表只能有一个主键,不可能有多个主键。

    2、所谓的一张表多个主键,我们称之为联合主键。

    注:联合主键:就是用多个字段一起作为一张表的主键。

    3、主键的主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。

    下面聊聊怎么创建联合主键:

    1、GUI中同时选中多列,点击设置为主键。

    2、sql语句将多列设置为主键:

    一种是在建表时就写出,语句如下:Create Table 表名 (字段名1 Int Not Null,

    字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),

    字段名3…………

    字段名N………… )

    另一种是在建表后更改,语句如下:ALTER TABLE 表名 WITH NOCHECK ADD

    CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED

    (

    [字段名1],

    [字段名2]

    )

    推荐教程:《sql视频教程》

    展开全文
  • 分久必合,合久必分。excel的使用中,使用频率最高而且让我们最头疼的操作不是合并就是拆分,不是拆分就是合并。...Indirect函数第三讲:多表合并但是,要论快速和省事,当然莫属使用VBA代码了,一键就可以完成...

    32f49e34200873175fc181c2503d6a38.gif

    分久必合,合久必分。

    excel的使用中,使用频率最高而且让我们最头疼的操作不是合并就是拆分,不是拆分就是合并。刘老师收到的频率最高的提问不是合并就是拆分,不是拆分就是合并,本公众号陆续介绍过使用函数或菜单来合并的方法,比如:

    <75>利用Query进行多表合并

    <122>Indirect函数第三讲:多表合并

    但是,要论快速和省事,当然莫属使用VBA代码了,一键就可以完成合并和拆分,接下来几周,我打算做个拆分和合并的VBA代码集合:

    拆分文件

    1、把一个工作簿中的若干张工作表拆分成单个工作簿,并以工作表名命名

    2、把一个工作表中的每一列拆分成单个工作簿,并以表头命名

    3、把一个工作表按筛选结果拆分为若干张工作表(同一个工作簿内)

    4、把一个工作表内的若干年资产负债表按年拆分为若干张工作表(同一个工作簿内)

    5、把一个工作表按行拆分为若干张工作表,并以行首单元格命名(同一个工作簿内)

    合并文件:

    1、同一个文件夹内的若干个工作簿合并到一个工作簿(放在若干个工作表内)

    2、同一个工作簿内的若干张工作表合并到一个工作表内(上下结构),比如3个车间工人的3张工资表合并成1张工资表。

    3、同一个工作簿内的若干张工作表合并到一个工作表内(左右结构),比如,放在若干张工作表内的若干年资产负债表合并成1张汇总表。


    今天发布的视频和代码是:把一个工作簿中的若干张工作表拆分成单个工作簿,并以工作表名命名工作簿。

    代码如下,复制粘贴到模块里就可以了。

    Sub 拆分工作簿()    Dim sh As Worksheet    Dim MyBook As Workbook    Set MyBook = ActiveWorkbook    For Each sh In MyBook.Sheets        sh.Copy        ActiveWorkbook.SaveAs Filename:=MyBook.Path & "\" & sh.Name & ".xlsx"        ActiveWorkbook.Close         Next    Application.DisplayAlerts = False    Application.ScreenUpdating = False    MsgBox "文件已经被拆分完毕!"End Sub

    有任何疑问,请带着excel文件来提问。泛泛提问,可能得不到有效回答。

    关于提问c0d78f5a3cbe912c3a45dfca7f4ddd29.png请点击链接

    如何有效的提问

    a25367e3d8b6bc4fce1bab77201db189.gif

    点击蓝色字体    回顾热门文章 

    被教材坑过的那些年——论股票的估值(上)

    被教材坑过的那些年——论股票的估值(下)

    毕业季——论文排版讲座视频汇总

    信用卡分期还款引发的讨论 

    你的房贷每月还款额是这样计算出来的(等额年金法)

    你的房贷每月还款额是这样计算出来的(等额本金法)

    使用数据透视表在汇总表中按要求进行筛选

    买保险的,卖保险的,都要进来看一看

    来,来,来,我教你怎样向会计系女生表白

    你还在使用收费的抽奖平台或抽奖软件吗?那真是弱爆了!使用Excel也可以抽奖喔!

    另一种思维方式——论资产的价值倒底几何

    1秒钟核对两个表格的异同——使用突出显示单元格规则

    开奖啦!开奖啦!开奖啦!

    在公众号中发送“目录”可获取所有教学视频目录

    在公众中中发送“论文”可获取毕业论文排版讲座视频

    8b42a604e88f9d5210b2c32ec181c09e.png

    8e653a2addc8c42711bf7a5d1d33e802.png

    9b3610d4474425f90b1ef0a1d53c6293.gif

    展开全文
  • 作者:Pedro Gomes 译:徐轶韬在本文中,我们介绍一个配置选项,该选项控制复制通道是否允许创建没有主键。这延续了我们最近在复制安全性方面的工作,在该工作中,我们允许用户强制执行权限检查和/强制执行...

    作者:Pedro Gomes 译:徐轶韬

    eb2d0150d131b2f82ec05dc1e1fb969e.png

    在本文中,我们介绍一个配置选项,该选项控制复制通道是否允许创建没有主键的表。这延续了我们最近在复制安全性方面的工作,在该工作中,我们允许用户强制执行权限检查和/或强制执行基于行的事件

    在8.0.20上,我们为CHANGE MASTER TO语句引入了一个新选项REQUIRE_TABLE_PRIMARY_KEY_CHECK复制通道在执行创建或更改表定义及其主键时可以选择自己的策略。

    在表定义上强制主键很重要。例如,在使用基于行的日志模式下进行复制时,表的主键对从数据库的性能起着重要作用。服务器中使用变量sql_require_primary_key强制执行此策略。在复制的上下文中,该变量的值将与所有更改表结构(也称为DDL)的查询一起发送,因此从数据库将遵循主数据库上的任何限制。

    如果从数据库的操作员无法控制或信任主服务器,仅仅遵循在那里定义的限制是不够的。因此,现在可以用REQUIRE_TABLE_PRIMARY_KEY_CHECK的值来影响此行为。

    可以在复制通道上将此参数设置为:

    • ON:复制通道在复制操作中始终对sql_require_primary_key系统变量使用值“ON”,在所有create和alter table操作中都需要主键。

    • OFF:复制通道在复制操作中始终对sql_require_primary_key系统变量使用值“OFF” ,创建或更改表时不需要主键,即使主数据库强制执行了此类限制。

    • STREAM:默认值,复制通道为每个事务使用从主数据库复制的值。这样可以保留以前的服务器行为。

    用法和优点

    第一个用例出现在对数据来源的主数据库没有严格控制的场景中。在这种情况下, REQUIRE_TABLE_PRIMARY_KEY_CHECK = ON可确保表定义中没有删除任何主键,不会导致性能问题。

    在多源复制方案中,此功能也非常有用。使sql_require_primary_key值保持一致,允许来自不同主数据库的复制通道之间的行为更加统一当多个主数据库更新同一组表,并且其中一个表存在错误时,使用ON可以防止丢失主键。使用OFF可使多个主数据库一起工作而不管它们能否操作主键。

    在复制通道中使用权限检查时,此功能也具有优势,因为将REQUIRE_TABLE_PRIMARY_KEY_CHECK设置ONOFF意味着具有PRIVILEGE_CHECKS_USER权限的帐户不再需要额外的权限来操作sql_require_primary_key如果设置为STREAM,除了需要创建或更改表的基本权限外,还要求权限检查用户具有会话管理级别的权限用以复制查询。

    配置

    若要显式更改复制通道在处理主键检查策略的行为,您需要停止复制SQL线程。

    0944816e1443aa14c3c8584fd5fb4f0e.png

    可观察性

    相关Performance Schema表进行了功能增强,用以显示新的CHANGE MASTER TO…语句选项REQUIRE_TABLE_PRIMARY_KEY_CHECK的状态

    bc78a52c6be997f40c4a98e039a2413a.png

    使用注意事项

    此功能受RESET SLAVE ALL影响,但不受RESET SLAVE的影响

    同样,虽然群组复制插件强制使用主键执行每个查询,但该检查不依赖于sql_require_primary_key并且限制较少。详情参阅“https://dev.mysql.com/doc/refman/8.0/en/group-replication-requirements.html”。

    摘要

    此功能是一种新工具,可在复杂多样的环境中保护您的复制流,同时您可以更好地控制复制用户的权限。

    希望这项新功能可以使您利用MySQL创建更安全的解决方案。欢迎进行测试,并告诉我们您的意见。

    感谢您关注“MySQL解决方案工程师”!

    be3d6c4f3648746fdf91eadad6996b53.png

    展开全文
  • 的业务场景可能用2个字段或者多个字段来确定条记录,说明这2个字段或多个字段都不是唯一的,可以分别重复对表设置组合主键方法如下:1.创建sql代码CREATE TABLE `combina_test` ( `id` int(11) NOT NULL AUTO...

    有的业务场景可能用2个字段或者多个字段来确定一条记录,说明这2个字段或多个字段都不是唯一的,可以分别重复

    对表设置组合主键方法如下:

    1.创建表sql代码

    CREATE TABLE `combina_test` ( 
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `dd` varchar(25) DEFAULT NULL, 
    `keyword` varchar(25) DEFAULT NULL, 
    PRIMARY KEY (`dd`,`keyword`) 
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    2.设置联合主键:PRIMARY KEY (`dd`,`keyword`)

    dd字段加keyword字段为主键,根据需要自主设置两个或三个字段为主键

    PRIMARY KEY (`字段1`,`字段2`,`字段3`...)

    3.执行代码发现报错:there can be only one auto column and it must be defined as a key

    c17233b227bc7ef76b4f118bd2d2c4b7.png

    意思是id字段是自增长,需要被定义为一个key

    4.给id字段加UNIQUE唯一索引

    CREATE TABLE `combina_test` ( 
    `id` int(11) NOT NULL AUTO_INCREMENT UNIQUE, 
    `dd` varchar(25) DEFAULT NULL, 
    `keyword` varchar(25) DEFAULT NULL, 
    PRIMARY KEY (`dd`,`keyword`) 
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    5.执行成功

    82c02f7948cd48333c2b98306180167c.png

    345aec1acc1a2fcc4be52afa794a4297.png

    6.写入数据测试

    9245fb54799c1bce03aad20399e61b1f.png

    当在对dd和keyword写入相同的数据会报错!

    c2178f7e7f46b3a3ea82a7edfb3ca10a.png

    so,组合主键设置成功

    展开全文
  • 主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个...
  • 一个表只能有一个主键,但可以有多个候选索引。主键常常与外键构成参照完整性约束,防止出现数据不一致。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引...
  • 一个表只能有一个主键,但可以有多个候选索引。主键常常与外键构成参照完整性约束,防止出现数据不一致。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引...
  • 一个表只能有一个主键,但可以有多个候选索引。主键常常与外键构成参照完整性约束,防止出现数据不一致。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引...
  • 我们在建立数据库的时候,需要为每张表指定一个主键,所谓主键就是能够唯一标识表中某一行的属性属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新...
  • 一个表只能有一个主键,但可以有多个候选索引。主键常常与外键构成参照完整性约束,防止出现数据不一致。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引...
  • 数据库含义: ...(一个表可以有多个主键) (2)主键名、主键值是唯一的。 (3)主键值不能为空。 (4)主键中的值不能修改、更新。 5.SQL不区分大小写。 6.元组: (1)一个元组指的是每个表的每.
  • 写在开头:一直搞不清楚数据库表之间的关系,看了很多博客还是有些弥漫,没有具体的例子辅助。...一个表可以有一个或多个主键。作用:唯一标识、快速查找2.外键:如果表B的一个字段(外键)依赖于表A的主键。则...
  • 一个表只能有一个主键,但可以有多个候选索引。主键常常与外键构成参照完整性约束,防止出现数据不一致。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引...
  • 一个表只能有一个主键,但可以有多个候选索引。主键常常与外键构成参照完整性约束,防止出现数据不一致。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引...
  • 1 题目 有争议的答案是D和C, C: 一张只能有一个主键,一个主键可以包含多个字段。 D: 主键约束可以定义在列级,主键不能

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 949
精华内容 379
关键字:

一个表可以有一个或多个主键