--建立临时表,问题1
create TEMPORARY table tmp_table(s1 int,s2 varchar(30))--select * from tmp_table
--建立临时变量,问题2
set @v=0;
--循环执行插入操作,问题3
while @v<20 do
insert into tmp_table values(@v,concat('测试数据:', @v))
set @v=@v+1
end while问题1:MYSQL创建临时表,用TEMPORARY ,临时表只有在连接断开后才清除,在MSSQL里是#tablename,在MSSQL里还有个
create @tablename table(),这个临时表只有在执行语句的时候才创建,执行完立刻清除的。在MYSQL里怎么实现??
问题2:创建临时变量
declare @a int 错误,此为MSSQL语法。
set @a=5 正确,这样感觉@a都不需要定义了,直接赋值啊?
MYSQL里面怎么定义临时变量??
问题3:上面的代码复制到MYSQL-FRONT里执行,不通过。我的目的就是循环往临时表里插入20条记录。应该如何修改??新手,对MSSQL熟悉,刚开始接触MYSQL,还望各位GGJJDDMM帮忙,谢谢在先。
解决方案 »
- JOIN 怎么查询一个分类 和他关联的子物品查询三个 JOIN查询
- MySQL查询响应时间极不稳定,请各位同仁帮我分析一下,多谢了。
- 在Mysql中,为什么sum具有count的功能?
- 关于mysql企业版安装问题
- ACMAIN_CHM 请进。昨天的一个贴子。
- 关于使用复合主键的问题
- ProgreSql 遍历数据库的表,列的问题。
- 请大家谈谈启用mysql事务对性能影响究竟有多大?我一直不敢用
- 谁给一个mysqldump.exe 的下载地址?谢谢!
- Mysql连接报错:out of sync with server
- mysql 查询时间的问题
- Mysqld安全相关启动选项--safe-user-create
1:不想通过存储过来来做。。直接到MYSQL-FRONT里面写命令完成。
2:MYSQL版本5.0
3:在线等。
4:沙发自己坐。
delimiter //
--建立临时表,问题1
create TEMPORARY table tmp_table(s1 int,s2 varchar(30));--select * from tmp_table
--建立临时变量,问题2
set @v=0;
--循环执行插入操作,问题3
while @v<20 do
insert into tmp_table values(@v,concat('测试数据:', @v))
set @v=@v+1
end while;
//
drop procedure if exists P_TEST;
create procedure P_TEST()
begin
drop table if exists tmp_table;
create TEMPORARY table tmp_table(s1 int,s2 varchar(30));
-- select * from tmp_table
-- 建立临时变量,问题2
set @v=0;
-- 循环执行插入操作,问题3
while @v<20 do
insert into tmp_table values(@v,concat('测试数据:', @v));
set @v=@v+1;
end while;
end;
-- ------------------------------------执行存储过程:
call P_TEST();
-- ------------------------------------
查看数据:
select * from tmp_table;
-- ------------------------------------
MYSQL中没有,你只能自行清除 , 或者等session 结束。
MYSQL中 @ 有特殊的意义,表示SESSION / GLOBAL 变量,所有应该 declare a int 注意终结符 ; 的设置,上面的朋友已经给你例子了。否则MYSQL看到;就以为你的语句已经结束开始运行了。
declare a int
运行,提示SQL执行错误 #1064 ,加分号断句declare a int ;,也一样的错误提示。
2:注意终结符 ; 的设置,上面的朋友已经给你例子了。否则MYSQL看到;就以为你的语句已经结束开始运行了我修改如下declare v intset v=0
-- 循环执行插入操作,问题3
while @v <20 do
insert into tmp_table values(@v,concat('测试数据:', @v))
set @v=@v+1
end while;
实际上第一条语句就报错了。。现在这样说吧,不用存储过程,可以用SQL语句直接循环插入20条记录到表里吗??我要的SQL,可以直接复制到MYSQL-FRONT里执行注意红色字体。
是创建临时会话级的变量