SQL:按用户名复制权限

生产系统中有一个模块是管理用户及菜单权限,它们是由3个数据表组成,关系及字段如下:

原来为每个用户添加菜单的访问权限时都是一个一个添加,但今天遇到有个新来的员工,需要具有与另一个员工相同的权限。新建一个用户后,如果还按之前的方式添加菜单的访问权限,将是很麻烦的事,于是需要设计一个权限复制的功能。

该功能在软件中设计成下面的样式:

当点击“确定”按钮时,希望能将某个用户已有的所有权限。

首先想到的步骤如下:

1、从用户表中按姓名找出要复制和被赋予权限的id; 2、从权限表中按要复制的用户的菜单id;3、将被赋予用户的id和菜单id批量写入到权限表;

但按这样来操作的话,最少都要3步,需要看看还有没有更优的方法,比如用一句SQL语句就实现。于是通过AI东拼西凑出了下面的SQL 语句:

/*使用INSERT INTO SELECT语句来将SELECT出的数据再INSERT到表中*/INSERT INTO 权限表(用户id,菜单id,禁用)
SELECT () AS 用户id,菜单id,'FALSE' AS 禁用FROM 权限表WHERE 用户id=()/*前一个()是要插入的新的用户id,那就是要被赋予权限的账号的id*/SELECT id FROM 用户表 WHERE 姓名='要被账予的用户姓名'/*后一个()是要复制的用户的id*/SELECT id FROM 用户表 WHERE 姓名='要复制的用户名'/*将3条SQL语句进行合并为1条*/INSERT INTO 权限表(用户id,菜单id,禁用)
SELECT (SELECT id FROM 用户表 WHERE 姓名='要被账予的用户姓名') AS 用户id,菜单id,'FALSE' AS 禁用FROM 权限表WHERE 用户id=(SELECT id FROM 用户表 WHERE 姓名='要复制的用户名')

这样在客户端只要将两个用户名传递并拼接到SQL语句中,通过一次执行就可以完成任务了。

以上的SQL是通过文心一言弄出来的,我问的是:

用sql实现:一个数据表中有userid、menuid,根据userid=2筛选出menuid,然后将userid=3和前面筛选出的menuid再插入到本数据表中

 然后我自己再修改了查询对应用户的id的语句。

希望上面的分享能为大家带来帮助,也希望大家能利用好AI更好的学习与作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854591.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 中实现 验证码发送 刷新不变倒计时

今天实现一个倒计时的功能 在平常开发前端的功能的时候 不管是 移动端还是web端 我们都会有注册 登录 中的发送验证码功能 实现绑定以及注册功能。今天我主要分享一下当前的验证码实现原理。 有两种做法(我目前认为以及看到的) ① 做一个简单的倒计时 ② 实时监测倒计时 刷…

今日AI资讯-20240615

1. Follow Your Emoji 一键让照片变表情包 腾讯混元联合港科大、清华大学联合推出肖像动画生成框架Follow Your Emoji,可以通过人脸骨架信息生成任意风格的脸部动画,一键创建表情包。基于算法革新和数据积累,Follow Your Emoji可以支持对脸部…

中电金信:银行业数据中心何去何从

20多年前,计算机走进国内大众视野,计算机行业迎来在国内的高速发展时代。银行业是最早使用计算机的行业之一,也是计算机技术应用最广泛、最深入的行业之一。近年来,随着银行竞争加剧,科技如何引领业务、金融科技如何发…

聊聊DoIP吧(三)-端口号port

DoIP在UDP和TCP建立连接和发送诊断报文的过程中使用的端口定义如下:

【会议】一张图片讲清楚:项目启动会议

另附上启动会前需要准备的内容:

Windows10笔记本如何系统重装?64位电脑重装系统需小心!一键安装超详细步骤!

在日常生活和工作中,我们有时会遇到Windows 10笔记本系统运行缓慢、频繁出现错误或受到病毒攻击等问题。这时,重装系统就成了解决这些问题的最佳选择。然而,对于许多用户来说,尤其是64位电脑用户,重装系统可能是一项既…

18、24年--信息系统工程——系统集成

1、集成基础 系统集成的工作再信息系统项目建设中非常重要,它通过硬件平台、网络通信平台、数据库平台、工具平台、应用软件平台将各类资源有机、高效地集成到一起,形成一个完整的工作台面。系统集成工作的好坏对系统开发、维护有极大的影响。因此,在技术上需要遵循的基本原…

树结构与算法-杨辉三角形的两种实现

什么是杨辉三角形 本文旨在讨论普通杨辉三角形的两种实现方式:迭代法和递归法。我们不详细讲解杨辉三角形的数学问题,只研究其代码实现。 杨辉三角形大致如下图: 杨辉三角形的规律 通过对杨辉三角形的图形分析,我们可以看到这几点…

[JavaScript]何为变量提升?

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/139742129 出自【进步*于辰的博客】 关于编译与解释,详述可查阅博文《[Java]知识点》…

泛微开发修炼之旅--17基于Ecology短信平台,实现后端自定义二开短信发送方案及代码示例

文章链接:17基于Ecology短信平台,实现后端自定义二开短信发送方案及代码示例

《山西教育》教学版是什么级别的刊物?

《山西教育》教学版是什么级别的刊物? 《山西教育(教学版)》创刊于1956年,是由山西教育报刊社主办的教学刊物。山西省一级期刊,是“宣传教育政策,关注教育热点,传播先进经验,提供教改资讯”的权威性期刊&a…

[深度学习]--分类问题的排查错误的流程

原因复现: 原生的.pt 好使, 转化后的 CoreML不好使, 分类有问题。 yolov8 格式的支持情况 Format Argument Suffix CPU GPU 0 PyTorch - .pt True True 1 Tor…

HQChart实战教程73-仿tradingview指标MACD

HQChart实战教程73-仿tradingview指标MACD MACD![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/84d180b5620940f6b9fe08c6f10eb0f3.png)麦语法脚本实心MACD指标脚本效果 空心MACD指标脚本效果图 自定义指标添加到系统指标里HQChart插件源码地址 MACD tradingview中…

在Windows环境下设置定时任务(任务计划程序)(Python)

文章目录 前言一、准备执行的test.py文件二、准备test.bat批处理文件(系统环境变量)三、设置定时任务(任务计划程序) 前言 计划任务是系统的常见功能,利用任务计划功能,可以将任何脚本、程序或文档安排在某…

自研一套带双向认证的Android通用网络库

当前,许多网络库基于Retrofit或OkHttp开发,但实际项目中常需要定制化,并且需要添加类似双向认证等安全功能。这意味着每个项目都可能需要二次开发。那么,有没有一种通用的封装方式,可以满足大多数项目需求?…

怎么制作酒店订房功能

在这个快节奏的时代,每一次旅行都如同一次心灵的远航。而酒店,作为旅途中的“避风港”,它的选择显得尤为重要。你是否曾在忙碌的行程中,为了寻找一家心仪的酒店而焦头烂额?是否曾在深夜的街头,为了找到一个…

美式动漫效果PS图层样式

对于追求独特艺术风格和创意的摄影师和设计师来说,一款能够轻松将照片转化为卡通效果的Photoshop模板无疑是一个强大的工具。这款由专业团队精心打造的模板,特别注重于美式动漫风格的呈现,让您的照片瞬间拥有生动且充满魅力的动漫色彩。 模板…

Plonky3和Binius中的Brakedown多项式承诺协议解析及优化(3)

3.2 Expander Graph and Linear-Time Encodable Linear Code 线性时间编码是线性纠错码的一种,核心是扩展图(Expander Graph),如下图所示: Figure 3 Expander Graph Expander Graph是一种具有强连通性的稀疏图&#…

Python 引入中文py文件

目录 背景 思路 importlib介绍 使用方法 1.导入内置库 importlib.util 2.创建模块规格对象 spec importlib.util.spec_from_file_location("example_module", "example.py") 3.创建模块对象 module importlib.util.module_from_spec(spec) …

MyBatis基础教程

文章目录 一、MyBatis基本使用1.1简介1.2搭建MyBatis环境1.2.1安装MyBatis1.2.2创建MyBatis核心配置文件1.2.3创建mapper接口1.2.4创建MyBatis映射文件1.2.5实现增加功能 1.3整合log4j1.4修改与删除功能1.5查询功能1.5.1查询单个实体类对象1.5.2查询所有用户信息 二、核心配置文…