您当前的位置:首页 > 互联网教程

mysql 定义变量

发布时间:2025-05-13 08:52:04    发布人:远客网络

mysql 定义变量

一、mysql 定义变量

1、在PHP、C++等语言里面可以使用变量,在存储过程里面可以使用变量,SQL语句里面不能使用变量的。

2、不过你的要求可以用下面的一个SQL语句实现:

3、insert into YYY表(字段1,字段2,字段3) SELECT字段1,表达式2,常量3 FROM XXX表

4、注意:上面是两个表,一般不允许同时对一个表进行操作,如果是一个表,你可以考虑使用临时表:

5、SELECT字段1,表达式2,常量3 FROM XXX表 INTO TEMP TMP表;

6、insert into YYY表(字段1,字段2,字段3) SELECT* FROM TMP表;

二、mysql存储过程中 declare 和 set 定义变量的区别

MySQL存储过程中,定义变量有两种方式:

1.使用set或select直接赋值,变量名以@开头.

可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量。

2.以 DECLARE关键字声明的变量,只能在存储过程中使用,称为存储过程变量,例如:

主要用在存储过程中,或者是给存储传参数中。

在调用存储过程时,以DECLARE声明的变量都会被初始化为 NULL。而会话变量(即@开头的变量)则不会被再初始化,在一个会话内,只须初始化一次,之后在会话内都是对上一次计算的结果,就相当于在是这个会话内的全局变量。

在存储过程中,使用动态语句,预处理时,动态内容必须赋给一个会话变量。

三、mysql 怎么定义变量

1、MySQL的变量存在于内存、以及配置文件中;

2、其中内存中的变量是在运行时生效,配置文件中的变量是在 mysqld程序启动时加载到内存中;

3、MySQL 8版本以前为了保证修改后的变量的值在 MySQL运行时及 MySQL重启后生效,此时你需要分别修改内存和配置文件中变量的值:

4、SET global/session语句设置内存中全局/当前会话的变量的值,通过 Linux命令⼿⼯修改配置⽂件中变量的值,此时你会发现,你的配置⽂件需要通过 ps-ef| grep mysql查看进程启动命令中带⼊的选项--defaults-file,以确定配置⽂件,如果启动命令没有带⼊选项--defaults-file,那么默认配置⽂件为/etc/my.cnf;

5、你会发现修改配置⽂件时,需要确定配置⽂件,以及修改配置⽂件,这个步骤其实蛮繁琐的,⽽且如果你⼀不小心写错了变量名或值,可能会直接导致启动 MySQL失败,如果此时你有其他策略依赖 MySQL的启动/重启,那么这个 MySQL启动失败可能⼜会导致你策略判断不符合预期,造成其他不好的后果,这可能是就是亚马逊飓风初始的那只蝴蝶的翅膀。