维护数据完整性(三)
立即检查的(IMMEDIATE)或者延迟检查的(DEFERRED)
使用 SET CONSTRAINTS 语句
SET CONSTRAINTS
语句可以用来在事务内部改变约束的检查时机。以下是如何使用该语句的示例:
SET CONSTRAINTS constraint_name DEFERRED; # -- 将特定约束设置为延迟
SET CONSTRAINTS ALL DEFERRED; # -- 将所有约束设置为延迟
SET CONSTRAINTS constraint_name IMMEDIATE; # -- 将特定约束设置为立即
SET CONSTRAINTS ALL IMMEDIATE; # -- 将所有约束设置为立即
在这里,constraint_name
是你想要设置的约束的名称。如果你想对当前会话中的所有约束进行操作,可以使用ALL
。
使用 ALTER SESSION 语句
ALTER SESSION
语句可以用来为整个会话设置约束的默认行为。以下是如何使用该语句的示例:
-- 将所有新约束在会话中设置为延迟
ALTER SESSION SET CONSTRAINTS DEFERRED;
-- 将所有新约束在会话中设置为立即
ALTER SESSION SET CONSTRAINTS IMMEDIATE;
请注意,这些语句的具体语法可能会根据你所使用的数据库系统而有所不同。例如,在Oracle数据库中,你可以使用ALTER SESSION
来设置约束的行为,但在其他数据库系统(如PostgreSQL或MySQL)中,可能不支持这种用法。
在PostgreSQL中,你可以这样使用SET CONSTRAINTS
:
-- 开始一个事务
BEGIN;
-- 将所有约束设置为延迟
SET CONSTRAINTS ALL DEFERRED;
-- 执行一些DML操作
-- ...
-- 提交事务,此时将检查所有延迟的约束
COMMIT;
检查主键(PK)约束和唯一性(UK)约束的过程
- 主键约束(PK)和唯一性约束(UK)启用:
- 如果约束被启用,数据库将确保表中的数据满足约束条件。
- 索引可用性:
- 主键和唯一性约束通常依赖于索引来快速检查数据的唯一性。
- 约束是否可延迟:
- 如果约束是可延迟的,则检查会在事务提交时进行,而不是在每次数据修改时立即进行。
以下是对上述检查点的详细解释:
- 如果约束是可延迟的,则检查会在事务提交时进行,而不是在每次数据修改时立即进行。
- PK & UK Enforcement Key enabled? (Yes)
- 启用了主键和唯一性约束的强制检查。
- Is an index available for use? (Yes)
- 对于主键和唯一性约束,通常会有一个对应的索引,用于快速查找和验证唯一性。
- Constraint Deferrable? (Yes)
- 约束是可延迟的,这意味着在事务提交之前,不立即强制执行约束。
- Is the index nonunique? (No)
- 索引不是非唯一的,这意味着索引支持唯一性约束。
基于上述信息,以下是对检查过程的决策树:
- 索引不是非唯一的,这意味着索引支持唯一性约束。
- Use existing Constraint deferrable? (Yes)
- 如果现有约束是可延迟的,并且已经符合要求,那么可以继续使用它。
- Do not use index
- 如果不应该使用索引,则可能是因为数据库优化或特定的数据操作需求。
- Create unique index
- 如果没有为唯一性约束创建索引,则需要创建一个唯一索引来支持该约束。
- Create nonunique index
- 如果需要,但通常对于主键和唯一性约束,你不会创建一个非唯一索引。
Oracle数据库服务器在实施主键(Primary Key)和唯一键(Unique Key)约束时使用的流程。
主键和唯一键是通过索引来强制实施的。你可以控制用于强制这些约束的索引的位置和类型。
Oracle服务器使用以下步骤来实现唯一和主键约束:
- 如果约束被禁用,则不需要索引。
- 如果约束被启用,并且约束中的列是某个索引的前导部分(即索引的第一个或前几个列),那么无论该索引本身是唯一索引还是非唯一索引,都将使用该索引来强制约束。
- 如果约束被启用,但没有索引使用约束列作为索引的前导部分,那么将根据以下规则创建一个与约束同名的索引:
- 如果键是可延迟的(deferrable),则在键列上创建一个非唯一索引。
- 如果键是不可延迟的(nondeferrable),则创建一个唯一索引。
- 如果有可用的索引,并且约束是不可延迟的,那么使用现有的索引。
- 如果约束是可延迟的,并且索引是非唯一的,那么使用现有的索引。
简而言之,这段文字说明了Oracle数据库如何根据约束的类型(主键或唯一键)和属性(是否可延迟)来决定是否使用现有索引或创建新索引,以确保数据的唯一性和完整性。
展示了在数据库管理系统中关于主键(PK)和唯一键(UK)的实施流程。具体步骤如下:
-
Key enabled?:首先检查键是否已启用。
- 如果否,则不使用索引。
-
Is an index available for use?:接下来检查是否有可用的索引。
- 如果没有,继续判断约束是否可以延迟(Constraint deferrable?)。
- 如果可以延迟,则创建唯一索引(Create unique index)。
- 如果不可以延迟,则不使用索引(Do not use index)。
- 如果没有,继续判断约束是否可以延迟(Constraint deferrable?)。
-
Constraint Deferrable?:如果存在可用索引,进一步检查约束是否可以延迟。
- 如果可以延迟,然后检查索引是否为非唯一(Is the index nonunique?)。
- 如果是非唯一,则使用现有索引(Use existing index)。
- 如果不是非唯一,则创建非唯一索引(Create nonunique index)。
整个流程旨在确定如何管理和实施主键和唯一键约束,以确保数据的完整性和高效查询。
- 如果可以延迟,然后检查索引是否为非唯一(Is the index nonunique?)。
创建表的例子。
CREATE TABLE hr.employee (id NUMBER(7)CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX STORAGE (INITIAL 100K NEXT 100K)TABLESPACE ind,last_name VARCHAR2(25)CONSTRAINT employee_last_name_nn NOT NULL,dept_id NUMBER(7)
)
TABLESPACE users;
CREATE TABLE hr.employee
: 这是在hr
模式(schema)下创建一个名为employee
的表。id NUMBER(7)
: 定义了一个名为id
的列,数据类型为NUMBER
,最多可以存储7位数字。CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX
: 这是在id
列上定义了一个名为employee_id_pk
的主键约束。DEFERRABLE
关键字意味着这个约束的检查可以延迟到事务结束时进行,而不是在每次插入、更新或删除操作后立即检查。USING INDEX
: 指定应该为这个主键约束创建一个索引。STORAGE (INITIAL 100K NEXT 100K)
: 这是对索引存储的初始和后续扩展参数的设置。INITIAL 100K
表示索引最初分配的存储空间是100KB,而NEXT 100K
表示当初始空间用尽时,每次扩展分配的空间是100KB。TABLESPACE ind
: 指定索引应该存储在名为ind
的表空间中。last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL
: 定义了一个名为last_name
的列,数据类型为VARCHAR2
,最大长度为25个字符。NOT NULL
约束确保这个列不能有NULL值。dept_id NUMBER(7)
: 定义了一个名为dept_id
的列,数据类型为NUMBER
,最多可以存储7位数字。TABLESPACE users
: 指定表的数据应该存储在名为users
的表空间中。
总的来说,这段代码创建了一个表,定义了主键约束,并指定了索引的存储参数和表空间。主键约束被设置为可延迟,这意味着在事务中,对主键的检查可以推迟到事务提交时进行,这有助于提高并发事务的性能。同时,通过指定索引的存储参数,可以优化索引的性能和存储需求。
设置主键和唯一约束的指导原则
- Place indexes in a separate tablespace.
- 将索引放在单独的表空间中。这样做可以有助于提高性能和管理效率。例如,可以将索引放在快速的存储介质上,而将表数据放在其他存储上。此外,如果索引表空间需要维护(如备份或恢复),它不会影响到表数据的表空间。
- Use nonunique indexes if bulk loads are frequent.
- 如果经常进行批量加载操作,使用非唯一索引。在批量加载过程中,唯一索引可能会因为需要检查唯一性而降低插入性能。非唯一索引可以加快批量加载的速度,因为它们不需要在每次插入时都进行唯一性检查。但是,这仅适用于那些不会违反唯一性约束的批量加载操作。
- Self-referencing foreign keys: Define or enable foreign keys after the initial load.
- 对于自引用外键(即一个表中的外键引用同一个表中的主键),在初始数据加载之后定义或启用外键约束。这样做可以避免在加载大量数据时外键约束检查造成的性能开销。一旦数据加载完成,再启用外键约束可以确保数据的引用完整性。
- Defer constraint checking.
- 延迟约束检查。这意味着在事务执行期间,可以暂时不检查约束,直到事务提交时才进行。这可以提高包含大量数据修改操作的事务的性能,因为它减少了在事务执行期间需要进行的约束检查次数。
总的来说,这些指导原则旨在帮助数据库管理员和开发人员在设计数据库时做出优化决策,以提高数据库的性能和可维护性。通过合理地设置索引、处理批量加载、管理自引用外键和延迟约束检查,可以有效地处理数据完整性要求,同时保持良好的数据库性能。
- 延迟约束检查。这意味着在事务执行期间,可以暂时不检查约束,直到事务提交时才进行。这可以提高包含大量数据修改操作的事务的性能,因为它减少了在事务执行期间需要进行的约束检查次数。
Oracle数据库中使用EXCEPTIONS
表,处理在启用表约束时出现的违反约束的数据
-
创建EXCEPTIONS表:
- 通过运行
utlexpt1.sql
脚本来创建EXCEPTIONS
表。这个脚本通常位于Oracle数据库的rdbms/admin
目录下,用于创建一个表,该表可以存储违反约束的记录信息。
@?/rdbms/admin/utlexpt1.sql
@
后跟一个文件路径时,SQL*Plus会执行该路径指定的SQL脚本。?
符号是一个代字符,代表当前Oracle数据库的安装目录。当你在命令中使用?
时,SQL*Plus会用Oracle的安装目录替换它。
如果Oracle数据库安装在/u01/app/oracle/product/12.2.0/dbhome_1
目录下,那么上述命令实际上会执行/u01/app/oracle/product/12.2.0/dbhome_1/rdbms/admin/utlexpt1.sql
脚本。
如果你不知道Oracle数据库的确切安装路径,使用?
符号可以让SQL*Plus自动找到正确的路径。
- 通过运行
-
执行带有EXCEPTIONS选项的ALTER TABLE语句:
- 当你尝试启用一个表上的约束时,可以使用
ALTER TABLE
语句的EXCEPTIONS
选项来捕获并存储违反该约束的行。
ALTER TABLE your_table ENABLE CONSTRAINT your_constraint WITH EXCEPTIONS;
- 当你尝试启用一个表上的约束时,可以使用
-
在EXCEPTIONS表上使用子查询来定位带有无效数据的行:
- 一旦创建了
EXCEPTIONS
表,并且使用WITH EXCEPTIONS
选项启用了约束,你就可以查询EXCEPTIONS
表来找到违反约束的行。
SELECT e.* FROM EXCEPTIONS e;
- 一旦创建了
-
纠正错误:
- 根据从
EXCEPTIONS
表中获取的信息,你可以定位并更正导致约束违反的数据。
-- 假设我们发现违反约束的行是因为重复的主键 UPDATE your_table SET id = new_value WHERE id = old_value;
- 根据从
-
重新执行ALTER TABLE以启用约束:
- 在纠正了所有违反约束的数据后,再次执行
ALTER TABLE
语句来启用约束。
ALTER TABLE your_table ENABLE CONSTRAINT your_constraint;
- 在纠正了所有违反约束的数据后,再次执行
示例
假设我们有一个表employees
,其中有一个名为employee_id
的主键列,我们想要启用该列的主键约束,但是有一些重复的employee_id
。
-- 创建EXCEPTIONS表
@?/rdbms/admin/utlexpt1.sql
-- 尝试启用约束,并捕获异常
ALTER TABLE employees ENABLE CONSTRAINT emp_pk WITH EXCEPTIONS;
-- 查询EXCEPTIONS表以找到违反约束的行
SELECT e.* FROM EXCEPTIONS e;
-- 假设我们找到了违反约束的行,现在我们更正数据
UPDATE employees SET employee_id = new_unique_value WHERE employee_id = duplicate_value;
-- 重新启用约束
ALTER TABLE employees ENABLE CONSTRAINT emp_pk;
在这个例子中,我们首先创建了一个EXCEPTIONS
表,然后尝试启用employees
表上的主键约束,并将任何违反约束的行捕获到EXCEPTIONS
表中。之后,我们查询EXCEPTIONS
表来找到并更正这些错误,最后重新启用约束。
两个视图
在Oracle数据库中,DBA_CONSTRAINTS
和 DBA_CONS_COLUMNS
是两个数据字典视图,它们提供了关于数据库中约束和约束列的信息。
DBA_CONSTRAINTS 视图
DBA_CONSTRAINTS
视图包含了数据库中所有表的约束信息。
以下是一些常用的列:
- CONSTRAINT_NAME: 约束的名称
- CONSTRAINT_TYPE: 约束的类型(P: 主键, R: 外键, U: 唯一, C: 检查)
- TABLE_NAME: 约束所在的表名
- OWNER: 表的所有者
- STATUS: 约束的状态(ENABLED 或 DISABLED)
DBA_CONS_COLUMNS 视图
DBA_CONS_COLUMNS
视图提供了关于数据库中约束所涉及列的信息。
以下是一些常用的列:
- CONSTRAINT_NAME: 约束的名称
- TABLE_NAME: 约束所在的表名
- COLUMN_NAME: 约束涉及的列名
- OWNER: 表的所有者
- POSITION: 列在约束中的位置
相关文章:
维护数据完整性(三)
立即检查的(IMMEDIATE)或者延迟检查的(DEFERRED) 使用 SET CONSTRAINTS 语句 SET CONSTRAINTS语句可以用来在事务内部改变约束的检查时机。以下是如何使用该语句的示例: SET CONSTRAINTS constraint_name DEFERRED;…...
前后端分离开发心得
前后端分离开发是一种软件开发模式,将前端和后端的开发分离开来,使得前端和后端可以独立开发、测试和部署。具体来说: • 前端:负责展示数据和用户交互,使用 HTML、CSS、JavaScript 等技术实现用户界面和交互逻辑&…...
Redisson发布订阅学习
介绍 Redisson 的消息订阅功能遵循 Redis 的发布/订阅模式,该模式包括以下几个核心概念: 发布者(Publisher):发送消息到特定频道的客户端。在 Redis 中,这通过 PUBLISH 命令实现。 订阅者(Sub…...
【Golang/nacos】nacos配置的增删查改,以及服务注册的golang实例及分析
前言 本文分析的实例来源于nacos在github上的开源仓库 nacos配置的增删查改 先具体来看一段代码,我将逐步分析每一段的作用 package mainimport ("fmt""time""github.com/nacos-group/nacos-sdk-go/clients""github.com/naco…...
[手机Linux] 七,NextCloud优化设置
安装完成后在个人设置里发现很多警告,一一消除。 只能一条一条解决了。 关于您的设置有一些错误。 1,PHP 内存限制低于建议值 512 MB。 设置php配置文件: /usr/local/php/etc/php.ini 把里面的: memory_limit 128M 根据你自…...
浅谈云计算15 | 存储可靠性技术(RAID)
存储可靠性技术 一、存储可靠性需求1.1 数据完整性1.2 数据可用性1.3 故障容错性 二、传统RAID技术剖析2.1 RAID 02.2 RAID 12.3 RAID 52.4 RAID 62.5 RAID 10 三、RAID 2.0技术3.1 RAID 2.0技术原理3.1.1 两层虚拟化管理模式3.1.2 数据分布与重构 3.2 RAID 2.0技术优势3.2.1 自…...
vscode【实用插件】Material Icon Theme 美化文件图标
安装 在 vscode 插件市场的搜索 Material Icon Theme点 安装 效果...
json().get() 和 json[““] 的区别
以下是 json().get() 和 json[“”] 的区别: 使用方法和语法 json[“”]: 这是使用字典的索引操作符 [] 来访问 JSON 数据。假设 json 是一个字典,你可以通过 json[“key”] 的方式来获取对应 key 的值。 示例: python import js…...
商用车电子电气零部件电磁兼容条件和试验—目录
写在前面 本系列文章主要讲解商用车电子/电气零部件或系统的传导抗干扰、传导发射和辐射抗干扰、电场辐射发射以及静电放电等试验内容及要求,高压试验项目内容及要求。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) 目录 商用车电子电气零部件电磁兼容条件和试验(1)—…...
【新人系列】Python 入门(二十六):常见设计模式
✍ 个人博客:https://blog.csdn.net/Newin2020?typeblog 📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html 📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们…...
【跟着官网学技术系列之MySQL】第7天之创建和使用数据库1
前言 在当今信息爆炸的时代,拥有信息检索的能力很重要。 作为一名软件工程师,遇到问题,你会怎么办?带着问题去搜索引擎寻找答案?亦或是去技术官网,技术社区去寻找? 根据个人经验,一…...
Spark任务提交流程
当包含在application master中的spark-driver启动后,会与资源调度平台交互获取其他执行器资源,并通过反向注册通知对应的node节点启动执行容器。此外,还会根据程序的执行规划生成两个非常重要的东西,一个是根据spark任务执行计划生…...
使用python+pytest+requests完成自动化接口测试(包括html报告的生成和日志记录以及层级的封装(包括调用Json文件))
一、API的选择 我们进行接口测试需要API文档和系统,我们选择JSONPlaceholder免费API,因为它是一个非常适合进行接口测试、API 测试和学习的工具。它免费、易于使用、无需认证,能够快速帮助开发者模拟常见的接口操作(增、删、改、…...
Docker的入门
一、安装Docker 本教程参考官网文档,链接如下: CentOS | Docker Docs 这个教程是基于你的虚拟机已经弄好了(虚拟机用的CentOS),并且有SecureCRT或者MobaXterm等等任意一个工具 1.1 卸载旧版 如果系统中存在旧版本的Docker&a…...
机器学习:监督学习与非监督学习
监督学习是利用带有标签的数据进行训练,模型通过学习输入和输出之间的关系来进行预测。也就是说,数据集中既有输入特征,也有对应的输出标签,模型的目标是找到从输入到输出的映射关系。 而无监督学习则使用没有标签的数据进行训练,模型的任务是发现数据中的内在结构或模式…...
神经网络常见操作(卷积)输入输出
卷积 dimd的tensor可以进行torch.nn.Convnd(in_channels,out_channels),其中nd-1,d-2对于torch.nn.Convnd(in_channels,out_channels),改变的是tensor的倒数n1维的大小 全连接 使用torch.nn.Linear(in_features,out_features,bias)实现YXWT b,其中X 的形状为 (ba…...
海云安开发者安全智能助手D10荣膺 “ AI标杆产品 ” 称号,首席科学家齐大伟博士入选2024年度 “ 十大杰出青年 ”
2024年12月27日,粤港澳大湾区AI领袖峰会在深圳成功举办,大会表彰了在人工智能技术创新、应用实践和产业发展等方面取得优异成绩的企业和个人,深圳海云安网络安全技术有限公司开发者安全智能助手D10荣膺“AI标杆产品”称号。同时,公…...
O2O同城系统架构与功能分析
2015工作至今,10年资深全栈工程师,CTO,擅长带团队、攻克各种技术难题、研发各类软件产品,我的代码态度:代码虐我千百遍,我待代码如初恋,我的工作态度:极致,责任ÿ…...
C#,入门教程(27)——应用程序(Application)的基础知识
上一篇: C#,入门教程(26)——数据的基本概念与使用方法https://blog.csdn.net/beijinghorn/article/details/124952589 一、什么是应用程序 Application? 应用程序是编程的结果。一般把代码经过编译(等)过程&#…...
计算机网络(四)——网络层
目录 一、功能 二、IP数据报分片 三、DHCP动态主机配置协议 四、网络地址转换(NAT)技术 五、无分类编址CIDR 六、ARP地址解析协议 七、ICMP网际控制报文协议 八、IPv4和IPv6的区别 九、IPv4向IPv6的两种过渡技术——双栈协议和隧道技术 十、路由…...
VSCode的配置与使用(C/C++)
从0开始教你在vscode调试一个C文件 一.首先是配置你的编译环境,添加到环境变量(默认你是全新的电脑,没有安装vs2019之类的) 原因:因为相比于vs2019,vscode只是个代码编辑器,相当于一个彩色的、…...
《机器学习》——TF-IDF(关键词提取)
文章目录 TF-IDF简介TF-IDF应用场景TF-IDF模型模型参数主要参数 TF-IDF实例实例步骤导入数据和模块处理数据处理文章开头和分卷处理将各卷内容存储到数据帧jieba分词和去停用词处理 计算 TF-IDF 并找出核心关键词 TF-IDF简介 TF - IDF(Term Frequency - Inverse Do…...
金仓Kingbase客户端KStudio报OOM:Java heap space socketTimeout
找到Kingbase\ES\V8\KESRealPro\V008R006C006B0021\ClientTools\guitools\KStudio\KStudio.ini 修改JVM参数: 默认值: -Xms512m -Xmx1024m 改为: -Xms1024m -Xmx2048m -XX:MaxPermSize512m SQL查询报错:An I/O error occurred …...
XML在线格式化 - 加菲工具
XML在线格式化 打开网站 加菲工具 选择“XML 在线格式化” 输入XML,点击左上角的“格式化”按钮 得到格式化后的结果...
thinkphp8.0 likeadmin 框架添加API 文档自动生成工具 apidoc支持
Apidoc 是一个便捷的 API 文档自动生成工具,它能帮助开发者快速生成和管理 API 文档。以下是 Apidoc 的主要特点和功能: 主要特点 开箱即用 安装后,无需繁杂配置,直接按照文档编写注释,即可自动生成 API 文档。 轻松编…...
计算机网络 (44)电子邮件
一、概述 电子邮件(Electronic Mail,简称E-mail)是因特网上最早流行的应用之一,并且至今仍然是因特网上最重要、最实用的应用之一。它利用计算机技术和互联网,实现了信息的快速、便捷传递。与传统的邮政系统相比&#…...
【Idea启动项目报错NegativeArraySizeException】
项目场景: Idea启动项目报错(打包不报错),项目在服务器部署运行没有问题,尝试了重启idea、重启电脑、maven clean/install 都不行 maven-resources-production:sample: java.lang.NegativeArraySizeException: -5833…...
长安“战疫”网络安全公益赛的一些随想
起因 今年刚进入大学,开始带校队,为了培养校队新成员,也就一直计划着和当地的一些高校合作交流,但是由于种种原因一直被搁置下来。正巧学校信息中心和四叶草有一个培训项目的合作,学校的网安协会也算是沾了光成为了培…...
【网络编程】基础知识
目录 网络发展史 局域网和广域网 局域网(LAN) 广域网(Wan) 光猫 路由器 网线 设备通信的要素 IP地址 基本概念 地址划分 特殊地址(后续编程使用) IP地址转换 字节序 网络模型 网络的体系结…...
RK3568平台(音频篇)lineout无声调试
一.声音硬件框架 硬件HP_MUTE已强制拉低。 二.设备树配置 es8388_sound: es8388-sound {status = "okay";compatible = "rockchip,multicodecs-card";rockchip,card-name = "rockchip-es8388";hp-det-gpio = <&gpio1 RK_PD2 GPIO_ACT…...
计算机组成原理(计算机系统3)--实验三:取指和指令译码设计
一、 实验目标: 设计完成一个连续取指令并进行指令译码的电路,从而掌握设计简单数据通路的基本方法。 二、实验内容 本实验完成:1)首先完成一个译码器;2)接着实现一个寄存器文件;3࿰…...
紫光无人机AI飞控平台介绍
随着无人机技术的迅猛发展,无人机飞控平台的智能化需求不断提升。紫光无人机AI飞控平台作为一款创新型产品,为用户提供了从飞行控制到任务管理的一站式解决方案,尤其在AI实时识别和事件分析方面具有显著优势。本文将介绍平台的核心功能、技术…...
基于EMQX+MQTT+ESP32+Openharmony的开发实例
EMQX介绍 EMQ X 是基于 Erlang/OTP 平台开发的 MQTT 消息服务器,是开源社区中最流行的 MQTT 消息服务器。EMQX 是开源百万级分布式 MQTT 消息服务器(MQTT Messaging Broker),用于支持各种接入标准 MQTT 协议的设备,实…...
npm发布组件(vue3+webpack)
1.初始化Vue项目 vue create my-app 2.本地运行 npm run serve 3.新增目录和文件 1. src/package/index.js 2. src/package/wlz-btn/index.vue 3. src/package/wlz-input/index.vue // src\package\index.js import WlzBtn from "./wlz-btn"; import WlzInput …...
kubuntu24.04配置vmware17.5.1
背景 个人主机的最后一次折腾吧。 丝滑上网前提:singbox实践https://blog.csdn.net/qq_43652666/article/details/145190110 vmware 博通官网下载vmware workstation pro 17.5.1版本,注意一个新注册的账号只能下载一个win版本的vmware和一个linux版本…...
开发规范
开发规范 企业项目开发有2种开发模式:前后台混合开发和前后台分离开发。 前后台混合开发 顾名思义就是前台后台代码混在一起开发,如下图所示: 这种开发模式有如下缺点: 沟通成本高:后台人员发现前端有问题…...
大模型UI:Gradio全解11——Chatbot:融合大模型的聊天机器人(4)
大模型UI:Gradio全解11——Chatbot:融合大模型的聊天机器人(4) 前言本篇摘要11. Chatbot:融合大模型的多模态聊天机器人11.4 使用Blocks创建自定义聊天机器人11.4.1 简单聊天机器人演示11.4.2 流式传输Chatbot11.4.3 添…...
[操作系统] 深入理解操作系统的概念及定位
概念 任何计算机系统都包含⼀个基本的程序集合,称为操作系统(OS)。 其核心功能如图片所示,包括: 内核 (Kernel): 内核是操作系统的核心部分,被认为是狭义上的操作系统,直接与硬件打交道。负责进程管理、内…...
redhat安装docker 24.0.7
1、下载docker镜像包 wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.7.tgz 2、解压 tar -xvf docker-24.0.7.tgz 3、解压的docker文件夹全部移动至/usr/bin目录 cd docker cp -p docker/* /usr/bin 4、注册服务 vi /usr/lib/systemd/syste…...
数据库基础实验1(创建表,设置外键,检查,不为空,主键等约束)安装mysql详细步骤
安装MySQL详细步骤 1. 下载 MySQL 安装程序 访问 MySQL 官方网站:MySQL Downloads。在下载页面,选择 "MySQL Community (GPL) Downloads"。在 "MySQL Community Server" 部分,根据你的操作系统(Windows&…...
如何攻击一个服务器(仅用于教育及娱乐实验目的)
import socket import osdef create_virus():# 创建一个简单的病毒脚本,它会不断尝试连接目标服务器并发送恶意数据virus_code """ import socket import time import threadingdef attack_server(ip, port):while True:try:s socket.socket(socke…...
HarmonyOS NEXT应用开发边学边玩系列:从零实现一影视APP (二、首页轮播图懒加载的实现)
在开发一款影视APP时,首页的轮播图是一个非常重要的部分。它不仅能够吸引用户的注意力,还能有效地推广重点内容。为了提升应用的性能和用户体验,可以实现轮播图的懒加载功能。本文将详细介绍如何在HarmonyOS NEXT应用开发中实现这一功能。 1.…...
Jmeter 简单使用、生成测试报告(一)
一、下载Jmter 去官网下载,我下载的是apache-jmeter-5.6.3.zip,解压后就能用。 二、安装java环境 JMeter是基于Java开发的,运行JMeter需要Java环境。 1.下载JDK、安装Jdk 2.配置java环境变量 3.验证安装是否成功(java -versio…...
采用海豚调度器+Doris开发数仓保姆级教程(满满是踩坑干货细节,持续更新)
目录 一、采用海豚调度器+Doris开发平替CDH Hdfs + Yarn + Hive + Oozie的理由。 1. 架构复杂性 2. 数据处理性能 3. 数据同步与更新 4. 资源利用率与成本 6. 生态系统与兼容性 7. 符合信创或国产化要求 二、ODS层接入数据 接入kafka实时数据 踩坑的问题细节 三、海…...
大疆最新款无人机发布,可照亮百米之外目标
近日,DJI 大疆发布全新小型智能多光旗舰 DJI Matrice 4 系列,包含 Matrice 4T 和 Matrice 4E 两款机型。DJI Matrice 4E 价格为27888 元起,DJI Matrice 4T价格为38888元起。 图片来源:大疆官网 DJI Matrice 4E DJI Matrice 4T D…...
无公网IP 实现外网访问本地 Docker 部署 Navidrome
Navidrome 是一款可以在 macOS、Linux、Windows以及 Docker 等平台上运行的跨平台开源音乐服务器应用,它支持传输常见的 MP3、FLAC、WAV等音频格式。允许用户通过 Web 界面或 API 进行音乐库的管理和访问。本文就介绍如何快速在 Linux 系统使用 Docker 进行本地部署…...
踏上 C++ 编程之旅:开篇之作
踏上 C 编程之旅:开篇之作 在计算机编程的广袤天地中,C 宛如一座巍峨的高峰,吸引着无数开发者攀登探索。今天,就让我们一同开启这段充满挑战与惊喜的 C 编程之旅,在代码的世界里开辟属于自己的道路。 一、为什么选择…...
JS逆向系列之某考古站数据解密
声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除! 文章目录 声明本次目标网址逆向分析ing代码python实现最近太忙了,博客摆烂了好久,狗头保命.jpg。 本次目标网址 aHR0cHM6Ly93d3cua2F…...
idea 如何安装 github copilot
idea 如何安装 github copilot 要在 IntelliJ IDEA 中安装 GitHub Copilot,可以按照以下步骤操作: 打开 IntelliJ IDEA: 启动 IntelliJ IDEA。 打开插件管理器: 点击菜单栏中的 File。 选择 Settings(Windows/Linux)或 Prefere…...
html5各行各业官网模板源码下载 (4)
文章目录 1.来源2.源码模板2.1 html实现酷炫美观的可视化大屏(十种风格示例,附源码)2.2 HTML5实现古典音乐网站源码模板22.3 HTML5实现古典音乐网站源码模板32.4 HTML5实现小鸟过管道小游戏源码2.5 HTML5实现俄罗斯方块小游戏2.5 HTML5实现剪刀石头布小游戏(附源码)…...