📜  SQL |声明本地临时表

📅  最后修改于: 2021-08-29 11:49:22             🧑  作者: Mango

声明用于创建临时表的本地临时表语句。临时表是其中临时表仅对创建表并插入行的连接可见的地方。

句法 –

DECLARE LOCAL TEMPORARY TABLE table-name
( column-name [ column-value ] );

例子 :

DECLARE LOCAL TEMPORARY TABLE TempGeek ( number INT );

INSERT INTO Geeks 
VALUES (1), (2), (3), (4);

Select * 
from TempGeek; 

number
1
2
3
4

创建本地临时表后,只要存在临时表,就不能再创建该名称的另一个临时表。

例子 –
您可以输入以下内容来创建本地临时表:

declare local temporary table Geektable

如果随后尝试选择“ Geektable”或再次声明Geektable,则会收到一条错误消息,指出Geektable已存在。

声明临时表时,请排除所有者规范。

如果在同一会话中除了DECLARE LOCAL TEMPORARY TABLE语句之外还指定了相同的owner.table,则会报告语法错误。

例子 –

DECLARE LOCAL TEMPORARY TABLE user1.Gfgt(col1 int);
DECLARE LOCAL TEMPORARY TABLE user.Gfgt(col1 int);

报告“项目Gfgt已经存在”错误:

但是,您可以创建一个名称与现有基本表或全局临时表相同的临时表,但是首先使用本地临时表。

例子 –
考虑以下顺序:

CREATE TABLE Geeks (num int);
INSERT INTO Geeks VALUES (9), (8) ;

num
9
8

DECLARE LOCAL TEMPORARY TABLE Geeks(num int);

INSERT INTO Geeks VALUES (6), (7);

num
6
7

SELECT * 
FROM Geeks; 

输出 :
返回的结果是

num
6
7

对Geeks的任何引用均指本地临时表Geeks,直到通过连接删除本地临时表为止。

ALTER TABLE和DROP INDEX语句不能在本地临时表上使用。