最近在Oracle迁移MySQL过程中遇到了一些关于with as 语法的问题,但是在MySQL中是没有这样的语法的,因为我使用了临时表代替了;因此今天做了一些小总结,欢迎各位大佬指导。
一、Oracle with as语法
with tableName as (select ....)
select ...
它在查询之前预先就构造了一个临时表,以供使用;可以一次分析,多次使用;增加了SQL的易读性。
二、MySQL临时表
语法:
DROP TABLE IF EXISTS DEMO_TEST;
create temporary table DEMO_TEST(
SELECT * FROM product
);
注意点:
1、同一个SQL查询语句中只能使用一次;
2、仅在当前连接中可见,连接关闭时则自动删除临时表;
3、不能使用rename来重命名临时表。但是可以alter table rename代替;