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.mfbz.cn/a/717544.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PS插件创成式填充功能全面测评:轻松实现AI修图新高度

大家好,我是你们的AIGC测评博主。今天,我将为大家带来一款ps插件创成式填充功能——深度体验 在图像处理领域,AI技术的应用已经越来越广泛。而创成式填充功能,无疑是其中的佼佼者。它利用AI技术,能够根据用户输入的关…

c语言——c51单片机——数码管

数码管: #include "reg51.h"void delay(unsigned int n) {while (n)--n; }void main(void) { //unsigned char num[] {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d,0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c,0x39, 0x5e, 0x79, 0x71, 0x00};unsigned int i 0…

坚持刷题|合并有序链表

文章目录 题目思考代码实现迭代递归 扩展实现k个有序链表合并方法一方法二 PriorityQueue基本操作Java示例注意事项 Hello,大家好,我是阿月。坚持刷题,老年痴呆追不上我,消失了一段时间,我又回来刷题啦,今天…

雪花算法和UUID

目录 雪花算法概念优点和不足优点:缺点:解决方案代码示例 UUID优点与不足优点不足 两种算法的比较应用场景区别 雪花算法 概念 雪花算法是一个分布式id生成算法,它生成的id一般情况下具有唯一性。由64位01数字组成,第一位是符号位,始终为0。…

【leetcode刷题】面试经典150题 , 27. 移除元素

leetcode刷题 面试经典150 27. 移除元素 难度:简单 文章目录 一、题目内容二、自己实现代码2.1 方法一:直接硬找2.1.1 实现思路2.1.2 实现代码2.1.3 结果分析 2.2 方法二:排序整体删除再补充2.1.1 实现思路2.1.2 实现代码2.1.3 结果分析 三、…

大模型泡沫退去,谁能活到下半场?

前言 从今年3月开始,国内企业纷纷下场大模型,铆足劲秀肌肉,如今转向垂直行业淘金,试图争霸行业大模型。我们的心态也逐渐从看乐子,到严肃讨论。 在人工智能的世界,我们经历了众多的概念游戏,在…

shell编程——脚本入门

在编写脚本的时候指定解析器 在编写shell脚本时第一行以#!/bin/bash开头指定解析器。 在shell脚本中使用echo语句来在屏幕中打印内容。 调用shell脚本的第一种方式 在shell脚本中以bash或者是sh脚本路径的方式来启动脚本。这种执行脚本的方式是在Linux操作系统的b…

【C++高阶】掌握C++多态:探索代码的动态之美

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:C继承 🌹🌹期待您的关注 🌹🌹 ❀继承 📒1. 多态的定义及实现&…

【总线】AXI总线:FPGA设计中的通信骨干

目录 AXI4:高性能地址映射通信的基石 AXI4-Lite:轻量级但功能强大的通信接口 AXI4-Stream:高速流数据传输的利器 结语:AXI总线在FPGA设计中的重要性 大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计…

Go 并发控制:RWMutex 实战指南

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

怎么管理网站的数据

每一个网站都会有很多的数据,这些数据的来源,有一些是直接把数据存放在运行文件里面,有一些则是存放在数据库里面,如MySQL、SQL Server等等,这些数据库都是需要安装指定的数据库环境才能运行起来,数据库的存…

减肥药实质利好服装业:身材好了,更时尚了 1-5月份,新建商品房销售面积同比下降20.3%

减肥药实质利好服装业:身材好了,更时尚了 减肥成功的顾客纷纷瞄准性感look,不但促进了销售,还给服装品牌节省了成本,因为小尺寸的衣服使用的面料更少。大码女装,可能是下一个被 GLP-1减肥神药杀死的行业。…

【计算机毕业设计】234基于微信小程序的中国各地美食推荐平台

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

小知识点快速总结:梯度爆炸和梯度消失的原理和解决方法

本系列文章只做简要总结,不详细说明原理和公式。 目录 1. 参考文章2. 反向梯度求导推导3. 具体分析3.1 梯度消失的原理3.2 梯度爆炸的原理 4. 解决方法 1. 参考文章 [1] shine-lee, "网络权重初始化方法总结(上):梯度消失、…

Elixir学习笔记——速构(函数式编程基础)

在 Elixir 中,循环遍历 Enumerable 是很常见的,通常会过滤掉一些结果并将值映射到另一个列表中。 速构是此类构造的语法糖:它们将这些常见任务分组为 for 特殊形式。 例如,我们可以将一串整数映射到它们的平方值: 速构…

VSCode的maven插件配置问题

最近尝试使用VSCode开发java后台项目,发现安装了java开发套件的插件 配置了开发环境之后,maven下载的依赖包始终位于~/.m2/repository目录之后,放在了默认的C盘,这就是我最不喜欢的位置。 为了保证C的小,所以需要修改…

四川赤橙宏海商务信息咨询有限公司抖音电商服务领军企业

在当今数字化浪潮中,电商行业正以前所未有的速度蓬勃发展,而抖音电商作为其中的佼佼者,更是吸引了无数商家的目光。在这个充满机遇与挑战的市场中,四川赤橙宏海商务信息咨询有限公司凭借其专业的服务和深厚的行业底蕴,…

ezButton-按钮库

ezButton-按钮库 使用按钮时,初学者通常会遇到以下麻烦: Floating input issue 浮动输入问题Chattering issue 抖动问题Detecting the pressed and released events 检测按下和释放的事件Managing timestamp when debouncing for multiple buttons 在多…

Ubuntu 20.04 LTS WslRegisterDistribution failed with error: 0x800701bc

1.以管理员身份运行powershell,输入:wsl --update, 2.重新打开ubuntu即可。

2024年春季学期《算法分析与设计》练习15

问题 A: 简单递归求和 题目描述 使用递归编写一个程序求如下表达式前n项的计算结果&#xff1a; (n<100) 1 - 3 5 - 7 9 - 11 ...... 输入n&#xff0c;输出表达式的计算结果。 输入 多组输入&#xff0c;每组输入一个n&#xff0c;n<100。 输出 输出表达式的计…