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技术的美食烹饪互动平台的设计与实现
美食烹饪互动平台的设计与实现 摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统美食信息管理难度大&…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
