Floor报错原理详解+sql唯一约束性
目录
floor报错原理
唯一性约束
主键约束:
创建约束的形式
删除约束
删除唯一性约束(UNIQUE Constraint)
在SQL Server中:
在MySQL中:
在PostgreSQL中:
删除主键约束:
floor报错原理
floor报错能使用的根本前提:该表定义了唯一性约束(下述会深入了解唯一性约束)
主要原因,主键冲突
原因分析:floor(rand(0)*2)会生成多个结果 as 为 a, a 又被group by 当做分组的基准,当查询附加count(*),是因为尽管在这个场景下不是用来计算记录数量,但它是SQL查询的一部分,且由于group by的作用,会创建临时表并尝试基于不合法的分组条件来计数,进而引发数据库内部错误。同时在没有明确指定的列上进行分组时,数据库系统在内部创建临时表并尝试插入分组的结果,而基于floor (rand(0)*2)的分组可能导致多个记录落入相同的分组ID,从而违反了表的唯一性束缚,最终导致主键冲突.
唯一性约束
唯一性约束:在数据库管理系统中用于确保一个或一组列(字段)中的数据具有唯一性的规则。它限制了在指定列上插入重复值的行为,即在该列(或列集合)中,任何两行记录都不能有完全相同的值。
具体讲述唯一性约束:
单列唯一性约束:当一个列被定义唯一性约束时,该列中,任意两个字段的值都不能相同,NULL值也不例外;
组合列唯一性约束:单列之间的值可以相同,但是列与列之间任意一行中的值都不能相同
其作用:
防止数据冗余和数据的错误输入
除了主键之外提供另一种标识记录的方式,特别适用于那些不是主要标识符但是需要保证其唯一性的场景。
主键约束:
主键约束是一种特殊的唯一性约束,也是主键固有的特性,当某列在被定义为主键的同时,该列就已经有了主键约束,他不仅要求一列或者多列(考虑到联合主键)的值不能相同,而且其中不能有NULL值,一个表中只允许有一个主键,但是可以有多个唯一性约束
创建约束的形式
CREATE TABLE Users (UserID INT PRIMARY KEY, -- 定义主键Username VARCHAR(50) NOT NULL,Email VARCHAR(100),UNIQUE (Username), -- 单列唯一性约束UNIQUE (Email) -- 单列唯一性约束
);-- 或者针对组合列的唯一性约束
CREATE TABLE Orders (OrderID INT PRIMARY KEY,ProductID INT,UserID INT,Quantity INT,UNIQUE (ProductID, UserID) -- 组合列唯一性约束
);
删除约束
删除表的唯一性约束和主键约束的过程类似于删除单一约束,以下是不同数据库系统中进行这些操作的一般示例:
删除唯一性约束(UNIQUE Constraint)
在SQL Server中:
-- 假设唯一性约束名为 'UQ_YourColumn'ALTER TABLE YourTable DROP CONSTRAINT UQ_YourColumn;如果不知道唯一性约束的具体名称,可以先查询:SELECT name FROM sys.indexes WHERE type = 2 AND object_id = OBJECT_ID(N'YourTable');解释:sys.indexes表中有所有数据库的索引信息,name,即为索引的名称;type=2,即为唯一性约束列的索引;OBJECT_ID(N'YourTable'),可以替换为你要查的那个表。在MySQL中:
-- 假设唯一性约束是在列 'your_column' 上创建的ALTER TABLE YourTable DROP INDEX your_unique_constraint_name;-- 如果没有显式指定约束名,可能需要找到其默认生成的名称SHOW CREATE TABLE YourTable;-- 查看常见表时赋予给表的具体结构以确定唯一性约束的名称在PostgreSQL中:
-- 假设唯一性约束的列名为 'your_unique_constraint'ALTER TABLE YourTable DROP CONSTRAINT your_unique_constraint;
删除主键约束:
-- 假设我们的表名为 'YourTable',主键名为 'PK_YourTable' 或者没有显式指定名称时由系统自动生成-- 显式命名的主键约束
ALTER TABLE YourTable
DROP CONSTRAINT PK_YourTable;-- 如果主键约束未命名或不知道具体名称(某些数据库系统如SQL Server)
-- 可能需要先查询主键约束名,然后使用上述方式删除
-- 以下是一个示例查询主键约束名的SQL(MySQL不适用,仅适用于SQL Server或其他支持类似语法的数据库)
SELECT name
FROM sys.key_constraints
WHERE type = 'PK' AND parent_object_id = OBJECT_ID('YourTable');-- sys.key_constraints,type='PK' 类比于sys.indexes,type=2,都是固定的。-- 删除未命名主键约束(PostgreSQL示例)
ALTER TABLE YourTable
DROP CONSTRAINT IF EXISTS your_primary_key_constraint_name;-- 在MySQL中删除主键约束(假设主键只有一列,名为 'your_primary_key_column')
ALTER TABLE YourTable
DROP PRIMARY KEY;
相关文章:
Floor报错原理详解+sql唯一约束性
目录 floor报错原理 唯一性约束 主键约束: 创建约束的形式 删除约束 删除唯一性约束(UNIQUE Constraint) 在SQL Server中: 在MySQL中: 在PostgreSQL中: 删除主键约束: floor报错原理 …...
Arduino中安装ESP32网络抽风无法下载 暴力解决办法 python
不知道什么仙人设计的arduino连接网络部分,死活下不下来。(真的沙口,第一次看到这么抽风的下载口) 操作 给爷惹火了我踏马解析json选zip直接全部下下来 把这个大家的开发板管理地址下下来跟后面python放在同一目录下,…...
Linux基础命令—系统服务
基础知识 centos系统的开机流程 1)通电 2)BIOS硬件检查 3)MBR引导记录 mbr的引导程序 加载引导程序 让硬件加载操作系统内核 MBR在第一个磁盘第一个扇区 总大小512字节 mbr: 1.引导程序: 占用446字节用于引导硬件,加载引导程序 2.分区表: 总共占…...
qt-动画圆圈等待-LED数字
qt-动画圆圈等待-LED数字 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include "LedNumber.h" #include <QLabel>LEDNumber::LEDNumber(QWidget *parent) : QWidget(parent) {//设置默认宽高比setScale((float)0.6);//设置默认背景色se…...
SpringBoot3整合Swagger3,访问出现404错误问题(未解决)
秉承着能用就用新的的理念,在JDK、SpringBoot、SpringCloud版本的兼容性下,选择了Java17、SpringBoot3.0.2整合Swagger3。 代码编译一切正常,Swagger的Bean也能加载,到了最后访问前端页面swagger-ui的时候出现404。 根据网上资料…...
Django配置文件参数详解
Django是一个高级的Python Web框架,它遵循MVC设计模式,并内置了许多功能,如认证、URL路由、模板引擎、对象关系映射(ORM)等。为了定制Django项目的各种功能和行为,我们需要编辑其配置文件。Django的主要配置…...
Docker+Kafka+Kafka-ui安装与配置
前言 Docker、Kafka都是开发中常用到的组件。在自己的第三台电脑上去安装这些…所以写个博客记录一下安装过程。本文主要内容:Docker安装、kafka安装、kafka可视化配置。这次的电脑环境是Windows11,Intel处理器。 Docker安装 https://www.docker.com/p…...
单例模式的介绍
单例模式(Singleton)是一种创建型设计模式,它确保一个类只有一个实例,并提供全局访问点。其核心思想是通过限制类的实例化次数,防止多个实例同时存在,从而避免了多线程竞争和资源浪费,提高了代码…...
JavaSec 基础之 XXE
文章目录 XMLReaderSAXReaderSAXBuilderDocumentBuilderUnmarshaller**SAXParserFactory**XMLReaderFactoryDigester总结 XMLReader public String XMLReader(RequestBody String content) {try {XMLReader xmlReader XMLReaderFactory.createXMLReader();// 修复:…...
AI:137-基于深度学习的实时交通违法行为检测与记录
🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…...
【深度学习笔记】3_14 正向传播、反向传播和计算图
3.14 正向传播、反向传播和计算图 前面几节里我们使用了小批量随机梯度下降的优化算法来训练模型。在实现中,我们只提供了模型的正向传播(forward propagation)的计算,即对输入计算模型输出,然后通过autograd模块来调…...
Jenkins详解
目录 一、Jenkins CI/CD 1、 Jenkins CI/CD 流程图 2、介绍 Jenkins 1、Jenkins概念 2、Jenkins目的 3、特性 4、产品发布流程 3、安装Jenkins 1、安装JDK 2、安装tomcat 3.安装maven 4安装jenkins 5.启动tomcat,并页面访问 5.添加节点 一、Jenkins CI/…...
Java8 Stream API 详解:流式编程进行数据处理
🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默&…...
【机器学习】特征选择之过滤式特征选择法
🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…...
C#_扩展方法
简述: 扩展方法所属类必需是静态类(类名依据规范通常为XXXExtension,XXX为被扩展类)扩展方法必需是公有的静态方法扩展方法的首个参数由this修饰,参数类型为被扩展类型 示例: static class DoubleExtens…...
LeetCode 热题 100 | 二叉树(一)
目录 1 基础知识 1.1 先序遍历 1.2 中序遍历 1.3 后序遍历 2 94. 二叉树的中序遍历 3 104. 二叉树的最大深度 4 226. 翻转二叉树 5 101. 对称二叉树 菜鸟做题,语言是 C 1 基础知识 二叉树常见的遍历方式有: 先序遍历中序遍历后序遍历…...
k8s之nodelocaldns与CoreDNS组件
在 Kubernetes 集群中,通常是先通过 NodeLocal DNS Cache 进行域名解析,如果 NodeLocal DNS Cache 没有找到对应的域名解析结果,才会向 CoreDNS 发起请求。在部署层面上看nodelocaldns会在每个节点上运行一个 DNS 缓存服务,而Core…...
Java中的访问修饰符
Java中的访问修饰符 java 提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限: 公开级别:用 public 修饰,对外公开受保护级别:用 protected 修饰,对子类和同一个包中的类公开默认级别:没有修饰符号,向同一个包的类公开私有级别:用 private 修饰,只…...
【论文解读】transformer小目标检测综述
目录 一、简要介绍 二、研究背景 三、用于小目标检测的transformer 3.1 Object Representation 3.2 Fast Attention for High-Resolution or Multi-Scale Feature Maps 3.3 Fully Transformer-Based Detectors 3.4 Architecture and Block Modifications 3.6 Improved …...
springboot215基于springboot技术的美食烹饪互动平台的设计与实现
美食烹饪互动平台的设计与实现 摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统美食信息管理难度大&…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门  是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
