新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
下面是一个简单的 存储过程的例子.
北仑ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
DECLARE v_index INT;
定义一个 名称为 v_index 的变量, 类型为 INT
MYSQL 变量定义应该只能在 存储过程, 函数里面定义.
不像 Oracle / SQL Server , 一个 BEGIN / END 里面就可以定义/执行了。
mysql DELIMITER //
mysql CREATE PROCEDURE TestWhile()
- BEGIN
- DECLARE v_index INT;
-
- SET v_index = 0;
-
- WHILE v_index 5 DO
- SET v_index = v_index + 1;
- SELECT v_index;
- END WHILE;
-
- END//
Query OK, 0 rows affected (0.00 sec)
不能定义为int型,应该定义为timestamp型,这样本身就默认是当前系统时间
打开电脑的终端窗口。
输入mysql,uroot,p进入mysql。用USE来切换数据库。查看表格名字,以免重复。创建一个表格,这个我们设置name的默认值为Peter,也就是固定值。
插入数据的时候固定值就不需要插入了。查看一下数据就能知道固定值自动生成了。
在PHP、C++等语言里面可以使用变量,在存储过程里面可以使用变量,SQL语句里面不能使用变量的。
不过你的要求可以用下面的一个SQL语句实现:
insert into YYY表(字段1,字段2,字段3) SELECT 字段1,表达式2,常量3 FROM XXX表
注意:上面是两个表,一般不允许同时对一个表进行操作,如果是一个表,你可以考虑使用临时表:
SELECT 字段1,表达式2,常量3 FROM XXX表 INTO TEMP TMP表;
insert into YYY表(字段1,字段2,字段3) SELECT * FROM TMP表;
MySQL数据库TIMESTAMP设置默认值的灵活运用,本次我们接着上次的内容介绍几个MySQL数据库TIMESTAMP设置默认值的几个应用实例,希望能够对您有所帮助。
#1查看表定义,可以看到b列有个属性ON UPDATE CURRENT_TIMESTAMP,导致更新数据时,即便未涉及到该列,该列数据也被自动更新。另一方面,c列默认值是'0000-00-00 00:00:00',实际插入已经被自动赋值为current_timestamp。
MySQL存储过程中,定义变量有两种方式:
1、使用set或select直接赋值,变量名以@开头,可以在一个会话(即连接)的任何地方声明,作用域是整个会话,称为用户变量。例如:set @var=1;
2、 以declare关键字声明的变量,只能在存储过程中使用,称为存储过程变量,主要用在存储过程中,或者是给存储传参数中。例如: declare var1 int default 0;
两者的区别是:
在调用存储过程时,以declare声明的变量都会被初始化为null。而会话变量(即@开头的变量)则不会被再初始化,在一个会话(连接)内,只须初始化一次,之后在会话内都是对上一次计算的结果,就相当于在是这个会话内的全局变量。