« 不同数据库的Temp Table的情况 »
DBA » http://www.anysql.net/dba/db_temp_tables.html 2007-09-14在Oracle中, Temp Table的结构建好后, 每个会话都可以看到这个表空构, 但看不到数据. 按数据还可以分为是事务范围(On Commit Delete Rows)的还是会话范围(On Commit Preserve Rows)的. 表结构一致有好处有坏处, 好处是每个会话不需要运行建表语句(其他数据库则不然), 坏处是当这个Temp Table被其他会话使用时, 对它做些DDL时会报错.
在MySQL 5中也有专门的Temp表, 每个会话可以创建结构不同的同名临时表, 当会话结束时, 这个临时表会被自动删除. 并且, 临时表可以和普通的表同名, 并且有优先权, 这点和Oracle不一样了, 显得Name Space没有管理好. 数据没有事务级别和会话级别之分(可能没有看清楚文档).
所接触的Sybase和SQL Server还是很久以前的老版本了, 不知道现在如何了. 只能使用”Insert … Into …“语句来建, 而不是Create Table语句. 建一个只在这个会话看得见的Temp的表的话, 表名要用一个”#“开头, 要建一个后来的会话看得见的Temp Table的话, 则表名用两个”#“开头. 同样的当会话结束后, 表也自动被删除了.
对于DB2是一无所知, 有人会告诉我吗? 还有一些其他的数据库呢?


我们也准备使用MySQL了,还是三年钱用过mysql,那是还是3.23的版本,原来看你写文章说也准备用MySQL,学习MysqL到现在有什么经验?有什么好点的书籍或者文章推荐下。
学习中
sybase & mssql 可以使用 create table 创建临时表。
语法大致和创建普通表一致
create table #T_TEST
(
ID numeric(10),
Name varchar(20)
)
go