DECLARE 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)
在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表
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)