mysql跨所有会话定义变量

mysql跨所有会话定义变量,mysql,amazon-rds,Mysql,Amazon Rds,我有一个带有几个变量的表,比如说tbl_param。每次需要使用其中一个参数时,我都必须查询tbl_参数。我需要在触发器中使用这些变量,所以每次执行这些触发器时,我都必须查询tbl_param。但是,如果我要对连接到数据库的每个用户使用相同的变量,该怎么办?只设置一次是合乎逻辑的,因为只有在tbl_param中更新相关变量时,才会经常更改。我知道我可以设置会话变量,但这并不能解决问题,因为它们只在一个连接期间可用。因此,当建立新连接时,我需要再次查询tbl_参数。例如,我是否可以定义一个新的系统

我有一个带有几个变量的表,比如说tbl_param。每次需要使用其中一个参数时,我都必须查询tbl_参数。我需要在触发器中使用这些变量,所以每次执行这些触发器时,我都必须查询tbl_param。但是,如果我要对连接到数据库的每个用户使用相同的变量,该怎么办?只设置一次是合乎逻辑的,因为只有在tbl_param中更新相关变量时,才会经常更改。我知道我可以设置会话变量,但这并不能解决问题,因为它们只在一个连接期间可用。因此,当建立新连接时,我需要再次查询tbl_参数。例如,我是否可以定义一个新的系统变量,该变量在服务器启动时加载,并且可以在tbl_参数更新时对其进行更新?或者还有其他选择吗?

可以在mysql.cnf或mysql.ini文件中定义系统;但这将要求您对该文件具有文件权限。在我的本地服务器Ubuntu 20.04.2上,它位于/etc/mysql/mariadb.conf.d/50-server.cnf中。但这在远程服务器上不起作用;因为我们无法访问系统文件等

我已经找到了一个替代方案,可以达到你所想的目的。设置会话变量等待它;我知道会话变量在其他会话中消失;但将其值初始化为表中的某个值。e、 g始终从表启动时初始化会话变量,并根据需要相应地更新到表

如果使用PHP MIS禁用mysql触发器 为某些特定记录禁用某些表上的触发器。而不是删除触发器并插入记录,然后重新创建这些触发器。只需稍微修改一下触发器。它将基于此会话变量禁用


然后,MIS总是将会话变量初始化为从表中获取的某个值。基于此值,跳过或执行触发器。

您可以使用一个聪明的环境变量,我将对此进行研究。嗯,我找不到从查询中读取和设置环境变量的方法,因此我无法使用它们。