精华内容
下载资源
问答
  • 如何删除临时表的列

    2007-11-07 15:28:00
    如果是sql脚本则使用 alter table #b drop column a ... 而这些临时表在动态SQL中添加的列,在执行完exec后,不能在外部访问这些列,只能在Exec()内部调用update语句。 如果外部此时调用:select...
    如果是sql脚本则使用
    alter   table   #b   drop   column   a
    go
    最后加上go

    存储过程内部不能使用go,必须使用动态SQL语句添加或删除列。  
       
      而这些临时表在动态SQL中添加的列,在执行完exec后,不能在外部访问这些列,只能在Exec()内部调用update语句。  
       
      如果外部此时调用:select   a   from   #b 会出错。   
        
          
      exec   ('alter   table   #b   drop   column   a ')  
      exec   ('update   #b ....')   
     

    转载于:https://www.cnblogs.com/Bruce_H21/archive/2007/11/07/952221.html

    展开全文
  • MySQL如何创建和删除临时表

    万次阅读 2011-12-20 19:28:55
    MySQL临时表,属于session级别,当session退出时,临时表删除临时表允许与其他表同名,并单独维护在thd的结构体中;因此,不同的session可以创建同名的临时表,并且只操作自己拥有的临时表; 创建临时表的...
    1.介绍:
    MySQL临时表,属于session级别,当session退出时,临时表被删除。临时表允许与其他表同名,并单独维护在thd的结构体中;因此,不同的session可以创建同名的临时表,并且只操作自己拥有的临时表;


    创建临时表的语法很简单:

    root@test 03:26:44>show create table tmp1\G
    *************************** 1. row ***************************
           Table: tmp1
    Create Table: CREATE TEMPORARY TABLE `tmp1` (
      `a` int(11) NOT NULL AUTO_INCREMENT,
      `b` int(11) DEFAULT NULL,
      `c` int(11) DEFAULT NULL,
      PRIMARY KEY (`a`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1
    1 row in set (0.00 sec)

    当创建临时表后,会在tmp文件夹下生成两个文件:
    #sql3e95_1a_0.frm 
    #sql3e95_1a_0.ibd

    那么MySQL本身究竟是如何创建和删除临时表的呢?

    2.创建
    执行SQL:

    CREATE TEMPORARY TABLE `tmp1` (   `a` int(11) NOT NULL AUTO_INCREMENT,   `b` int(11) DEFAULT NULL,   `c` int(11) DEFAULT NULL,   PRIMARY KEY (`a`) );

    1)断点:ysql_execute_command

    mysql_execute_command:
    2205      switch (lex->sql_command) {
    (gdb)
    2532        if (!(lex->create_info.options & HA_LEX_CREATE_TMP_TABLE))
    (gdb) p lex->create_info.options          --------if语句里为false
    $2 = 1
              create_table_precheck------检查是否具有创建表的权限,以及表名在全局链表上是否已存在(临时表无需检查)
              
              append_file_to_dir     ------Fix names if symlinked tables

               if (select_lex->item_list.elements)               -------------------当为create ....select这样的语句时select_lex->item_list.elements为非0值,这里我们只考虑简单的情况
                     if ((result= new select_create))
                               res= handle_select(thd, lex, result, 0);
               else
                   (1)mysql_create_like_table           ---------------create table like...类似的语句
                   (2)mysql_create_table                 ---------------主要分析这个函数

    2)断点:mysql_create_table

    mysql_create_table 
           mysql_create_table_no_lock
                 check_engine
                 file = get_new_handler
    3842      set_table_default_charset(thd, create_info, (char*) db);
    3844      if (mysql_prepare_create_table(thd, create_info, alter_info,
    3854      path_length= build_tmptable_filename(thd, path, sizeof(path));   -----创建临时表文件名:#sql{进程id}_{thread_id}_{当前线程的临时表整数标识thd->tmp_table}                
    3978      rea_create_table --------------------------------------------------------------------创建frm文件和ibd文件
    3986      open_temporary_table-------------------------------------------------------------打开临时表
                                (1)构建table和table_share结构体
                                (2)将table结构体加入到thd->temporary_tables链表中
                                    
    4009      error= write_create_table_bin_log----------------------------------------------写入binlog

    3.删除临时表
    手动执行 drop table tmp1

    mysql_execute_command
          case SQLCOM_DROP_TABLE:
                mysql_rm_table
                    mysql_rm_table_part2
                              for (table= tables; table; table= table->next_local)
                                         drop_temporary_table-----------------------------从thd->temporary_tables上查找临时表            
                                                               调用close_temporary_table来关闭、删除临时表文件,并从thd->temporary_tables上删除相应节点
                                         if (!drop_temporary)-------------------------------当删除的是非临时表时,执行下面的逻辑
    ----------------------------------------
    4. 当session退出时。
    看看堆栈:
    Breakpoint 16, rm_temporary_table (base=0xc8c560, path=0x1427c10 "/u01/mysql-5148.stock/tmp/#sql3e95_1d_0") at sql_base.cc:5634
    5634    bool rm_temporary_table(handlerton *base, char *path)
    (gdb) 
    5641      strmov(ext= strend(path), reg_ext);
    (gdb) bt
    #0  rm_temporary_table (base=0xc8c560, path=0x1427c10 "/u01/mysql-5148.stock/tmp/#sql3e95_1d_0") at sql_base.cc:5641
    #1  0x00000000005f6eaa in close_temporary (table=0x1427030, free_share=true, delete_table=true) at sql_base.cc:1928
    #2  0x00000000005f725f in close_temporary_tables (thd=0x14065f0) at sql_base.cc:1549
    #3  0x0000000000592d9b in THD::cleanup (this=0x14065f0) at sql_class.cc:967
    #4  0x00000000005a3579 in unlink_thd (thd=0xc8c560) at mysqld.cc:1858
    #5  0x00000000005a35dc in one_thread_per_connection_end (thd=0xc8c560, put_in_cache=16) at mysqld.cc:1945
    #6  0x00000000005ac208 in handle_one_connection (arg=0x14065f0) at sql_connect.cc:1141
    #7  0x0000003e638064a7 in start_thread () from /lib64/libpthread.so.0
    #8  0x0000003e630d3c2d in clone () from /lib64/libc.so.6
    #9  0x0000000000000000 in ?? ()

    在session结束的时候,会调用THD::cleanup来做临时表的清理工作
    展开全文
  • 如何在SQL Server中删除临时表

    千次阅读 2020-07-16 19:13:05
    如何删除临时表? (How to drop Temp Tables?) As the best practices before creating a temporary table, we should check the existence of this temporary table. In this way, we don’t experience the ...

    Temporary tables, also known as temp tables, are widely used by the database administrators and developers. However, it may be necessary to drop the temp table before creating it. It is a common practice to check whether the temporary table exists or not exists. So, we can eliminate the “There is already an object named ‘#temptablename’ in the database” error during the temporary table creation.

    临时表,也称为临时表,已被数据库管理员和开发人员广泛使用。 但是,可能有必要在创建临时表之前将其删除。 通常的做法是检查临时表是否存在。 因此,在临时表创建过程中,我们可以消除“数据库中已经有一个名为'#temptablename'的对象”错误。

    临时表 (Temporary Tables )

    The temporary tables are used to store data for an amount of time in SQL Server. Many features of the temporary tables are similar to the persisted tables. Such as, we can create indexes, statistics, and constraints for these tables like we do for persisted tables.

    临时表用于在SQL Server中存储数据一段时间。 临时表的许多功能与持久表相似。 例如,我们可以像为持久化表那样为这些表创建索引,统计信息和约束。

    The types of temporary tables affect the life-cycle of the temporary tables. Now, we will take a glance at them.

    临时表的类型会影响临时表的生命周期。 现在,我们将一目了然。

    临时表的类型 (Types of the Temporary Tables)

    Local Temporary Tables: The name of this type of temporary table starts with a single “#” hashtag symbol, and they are solely visible on the created session. If the session which has created the local temporary table is closed, the temporary table will be dropped automatically by SQL Server.

    本地临时表:此类临时表的名称以单个“#”井号标签符号开头,并且仅在创建的会话上可见。 如果关闭了创建本地临时表的会话,则SQL Server将自动删除该临时表。

    The following query will create a local temporary table:

    以下查询将创建一个本地临时表:

    CREATE TABLE #LocalCustomer
    (
     CustomerId int,
     CustomerName varchar(50), 
     CustomerAdress varchar(150)
    )
    GO
    INSERT INTO #LocalCustomer VALUES(1,'Katelyn Montropx' ,'30  Crescent Avenue DRUMMUIR CASTLE')
    GO
    SELECT * FROM #LocalCustomer
    

    How to create a local temporary table

    Global Temporary Tables: The name of this type of temporary table starts with a double “##” hashtag symbol and can be accessed from all other connections. This is the major difference between the local and global temporary tables. If the session where the global temporary table was created is closed, the global temporary table will be dropped automatically.

    全局临时表: 这种临时表的名称以双“ ##”井号标签符号开头,可以从所有其他连接中访问。 这是本地和全局临时表之间的主要区别。 如果关闭了创建全局临时表的会话,则全局临时表将被自动删除。

    The following query will create a global temporary table:

    以下查询将创建一个全局临时表:

    CREATE TABLE ##GlobalCustomer
    (
     CustomerId int,
     CustomerName varchar(50), 
     CustomerAdress varchar(150)
    )
    GO
    INSERT INTO ##GlobalCustomer VALUES(1,'Adam Tottropx' ,'30  Mztom Street LONDON')
    GO
    SELECT * FROM ##GlobalCustomer
    

    How to create a global temporary table

    The following table expresses the main differences between global and local temporary tables:

    下表表示全局和本地临时表之间的主要区别:

    Local Temporary Tables

    Global Temporary Tables

    Names start with a single “#” hashtag symbol.

    Names start with a double “##” hashtag symbol.

    Tables can be accessed only from the session where the table was created.

    Tables can be accessed from all other sessions.

    Cannot be dropped by the other connections.

    Can be dropped by the other connections.

    本地临时表

    全局临时表

    名称以单个“#”主题标签符号开头。

    名称以双“ ##”主题标签符号开头。

    只能从创建表的会话中访问表。

    可以从所有其他会话访问表。

    不能被其他连接丢弃。

    可以被其他连接丢弃。

    临时表存储在哪里? (Where are the Temporary Tables stored?)

    When we create a temporary table, they are created in the tempdb database. After creating a local temporary table, if we check the temporary tables folder in tempdb, we will see a weird table name. On the other hand, global temporary tables are created with their original names.

    当我们创建一个临时表时,它们是在tempdb数据库中创建的。 创建本地临时表后,如果我们检查tempdb中的临时表文件夹,我们将看到一个奇怪的表名。 另一方面,将使用其原始名称创建全局临时表。

    Listing temporary tables in tempdb database

    SQL Server adds random numbers at the end of the local table variables names. The idea behind this logic is pretty simple. More than one different connection can create local temporary tables with the same name, so SQL Server automatically adds a random number at the end of this type of temporary table name. In this way, the SQL Server avoids the same name conflicts.

    SQL Server在本地表变量名称的末尾添加随机数。 这种逻辑背后的想法非常简单。 多个不同的连接可以创建具有相同名称的本地临时表,因此SQL Server会在此类型的临时表名称的末尾自动添加一个随机数。 这样,SQL Server避免了相同的名称冲突。

    How to Drop Temp Tables

    There is no doubt that after these learnings, if we want to drop any temp table, we should work on the tempdb database.

    毫无疑问,经过这些学习,如果我们想删除任何临时表,我们应该在tempdb数据库上工作。

    如何删除临时表? (How to drop Temp Tables?)

    As the best practices before creating a temporary table, we should check the existence of this temporary table. In this way, we don’t experience the following error:

    作为创建临时表之前的最佳实践,我们应检查此临时表是否存在。 这样,我们不会遇到以下错误:

    Drop a Temp Table

    To achieve this check, we can use different techniques. Let us learn these techniques:

    要实现此检查,我们可以使用不同的技术。 让我们学习以下技术:

    使用OBJECT_ID函数检查临时表是否存在 (Using OBJECT_ID function to check temporary table existence)

    OBJECT_ID function is used to obtain the identification number of the database object. OBJECT_ID function can take the object’s name as a parameter so we can use this function to check the existence of any object in the particular database.

    OBJECT_ID函数用于获取数据库对象的标识号。 OBJECT_ID函数可以将对象的名称作为参数,因此我们可以使用此函数检查特定数据库中是否存在任何对象。

    The following query will check the #LocalCustomer table existence in the tempdb database, and if it exists, it will be dropped.

    以下查询将检查tempdb数据库中是否存在#LocalCustomer表,如果存在,则将其删除。

    For the local temporary tables:

    对于本地临时表:

    IF OBJECT_ID(N'tempdb..#LocalCustomer') IS NOT NULL
    BEGIN
    DROP TABLE #LocalCustomer
    END
    GO
     
    CREATE TABLE #LocalCustomer
    (
     CustomerId int,
     CustomerName varchar(50), 
     CustomerAdress varchar(150)
    )
    

    For the global temporary tables:

    对于全局临时表:

    IF OBJECT_ID(N'tempdb..##GlobalCustomer') IS NOT NULL
    BEGIN
    DROP TABLE ##GlobalCustomer
    END
    GO
     
    CREATE TABLE ##GlobalCustomer
    (
     CustomerId int,
     CustomerName varchar(50), 
     CustomerAdress varchar(150)
    )
    

    使用sys.tables表检查临时表是否存在 (Using sys.tables table to check temporary table existence )

    In this method, we will check the existence of the temporary table with the help of the sys.tables because this table returns user tables in the relevant database.

    在这种方法中,我们将借助sys.tables检查临时表的存在,因为该表返回相关数据库中的用户表。

    For the local temporary tables:

    对于本地临时表:

    IF EXISTS(SELECT [name] FROM tempdb.sys.tables WHERE [name] like '#LocalCustomer%') 
    BEGIN
       DROP TABLE #LocalCustomer;
    END;
     
    CREATE TABLE #LocalCustomer
    (
     CustomerId int,
     CustomerName varchar(50), 
     CustomerAdress varchar(150)
    )
    

    For the global temporary tables:

    对于全局临时表:

    IF EXISTS(SELECT [name] FROM tempdb.sys.tables WHERE [name] like '##GlobalCustomer%') 
    BEGIN
       DROP TABLE ##GlobalCustomer ;
    END;
     
    CREATE TABLE ##GlobalCustomer 
    (
     CustomerId int,
     CustomerName varchar(50), 
     CustomerAdress varchar(150)
    )
    

    As we can see, we check the existence of the #LocalCustomer table in the tempdb database, and if it exists, we have to drop it. At this point, we need to underline one issue, the table name is searched with the LIKE operator, and we also added the wildcard character at the end of the temp table name. As we stated, local temp tables are created with random suffix so that we can not know the exact name of them.

    如我们所见,我们检查tempdb数据库中#LocalCustomer表的存在,如果存在,则必须删除它。 在这一点上,我们需要强调一个问题,使用LIKE运算符搜索表名,并且在临时表名的末尾添加通配符。 如前所述,本地临时表是使用随机后缀创建的,因此我们无法知道它们的确切名称。

    使用DROP TABLE IF EXISTS语句 (Using DROP TABLE IF EXISTS statement)

    This is the last technique on how to drop a temp table, which we will learn. DROP TABLE IF EXISTS statement checks the existence of the table, and if the table exists, it drops. We have to underline one point about this statement; it works on SQL Server 2016 or the higher version of the SQL Server. In the following query, DROP TABLE IF EXISTS statement, we will check the #LocalCustomer table existence, and if it exists, it will be dropped.

    这是关于如何删除临时表的最后一项技术,我们将学习。 DROP TABLE IF EXISTS语句检查表的存在,如果该表存在,则删除该表。 我们必须强调这一点。 它适用于SQL Server 2016或更高版本SQL Server。 在下面的查询DROP TABLE IF EXISTS语句中,我们将检查#LocalCustomer表是否存在,如果存在,则将其删除。

    For the local temporary tables:

    对于本地临时表:

    DROP TABLE IF EXISTS  #LocalCustomer
    GO
    CREATE TABLE #LocalCustomer
    (
     CustomerId int,
     CustomerName varchar(50), 
     CustomerAdress varchar(150)
    )
    

    For the global temporary tables:

    对于全局临时表:

    DROP TABLE IF EXISTS  ##GlobalCustomer 
    GO
    CREATE TABLE ##GlobalCustomer 
    (
     CustomerId int,
     CustomerName varchar(50), 
     CustomerAdress varchar(150)
    )
    

    In the following table, we can see all the methods that we have mentioned briefly:

    在下表中,我们可以看到我们简要提到的所有方法:

    How to drop temporary tables

    Using OBJECT_ID function

    IF OBJECT_ID(N'tempdb..#TempTableName') IS NOT NULL
    BEGIN
    DROP TABLE #TempTableName
    END
    GO
     
    CREATE TABLE #TempTableName
    (
    Col1 VARCHAR(100)
    )
    

    Using sys.tables

    Using

    DROP TABLE IF EXISTS statement

    DROP TABLE IF EXISTS  #TempTableName
    GO
    CREATE TABLE #TempTableName
    (
    Col1 VARCHAR(100)
    )
    

    如何删除临时表

    使用OBJECT_ID函数

    使用sys.tables

    IF EXISTS(SELECT [name] FROM tempdb.sys.tables WHERE [name] like '#TempTableName%') 
     BEGIN
        DROP TABLE #TempTableName;
     END;
      
     CREATE TABLE #TempTableName
     (
     Col1 VARCHAR(100)
     )

    使用

    DROP TABLE IF EXISTS语句

    结论 (Conclusion)

    In this article, we learned the basics of the temporary tables, and we discussed dropping the temp table techniques in SQL Server. According to my thought, the best way is using the DROP TABLE IF EXISTS statement, but we can use other alternative methods easily.

    在本文中,我们学习了临时表的基础,并讨论了在SQL Server中删除临时表的技术。 根据我的想法,最好的方法是使用DROP TABLE IF EXISTS语句,但是我们可以轻松地使用其他替代方法。

    翻译自: https://www.sqlshack.com/how-to-drop-temp-tables-in-sql-server/

    展开全文
  • Mysql如何删除以 sql- 开头的临时表
                   

    author:skate
    time:2014/09/28

     

    Mysql如何删除以“#sql-”开头的临时表

     

    现象:在重建索引后,发现Mysql服务器的磁盘空间快满了

    在用如下命令重建索引

    mysql> alter table skatetab add unique index(id, uid), drop primary key, add primary key(uid, id);

    在重建索引的过程中,因为空间不足,导致Mysql server reboot,重启之后发现空间少了100G。于是查看是哪个目录占用了这100G,最后发现在数据目录里发现
    很多类似#sql-*.ibd临时文件和同文件名的#sql-*.frm。既然知道是临时表了,那就删除吧,肯定不能直接通过rm删除了,因为在ibdata里保存字典信息和Undo信
    息,数据库重启后会报错的。

     

    删除的方法:

    在alter table的过程中,如果Mysql突然crash了,就会在数据目录里存在一些中间表,这些中间表是以“#sql-”开头的临时表,在你的数据目录里会看到
    #sql-*.ibd和相应的 #sql-*.frm ,如果 #sql-*.ibd 和 #sql-*.frm两个文件都存在数据目录里的话,可以直接drop table,类似:

    mysql> drop table `#mysql50##sql-928_76f7`;

    前缀”#mysql50#“是让Mysql忽略文件名的安全编码,这个前缀是在Mysql5.1引入的

     

    因为我的数据目录里#sql-*.ibd 和 #sql-*.frm两个文件都存,所以直接drop就可以了,磁盘空间100多G也回收了,如下所示

    mysql> drop table `#mysql50##sql-928_76f7`;
    Query OK, 0 rows affected (16.28 sec)


    说明:如果在数据目录里只有#sql-*.ibd,而没有#sql-*.frm的话,就需要特殊处理
    1.在另一数据schema里创建一个和欲删除表一样的表结构(包括相同的列和索引)

    mysql> create database test
    mysql> create table test.tmp like  skatetab;       //只复制表的结构和索引,不复制数据

    2.把新创建的临时表的.frm文件复制到欲删除的数据目录里,并修改和 ”#sql-*.ibd“一样的文件名

    shell> cp test/tmp.frm  #sql-928_76f7.frm

    3.确认#sql-*.ibd 和 #sql-*.frm两个文件都存,然后直接drop,如下:
     
    mysql> drop table `#mysql50##sql-928_76f7`;


    参考:http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting-datadict.html


    ------end------

               
    展开全文
  • 在比较长的Sql查询中,往往会创建很多临时表,通过 if OBJECT_ID ('') is not null drop table 一张张删除比较麻烦. 有没有办法快速批量删除临时表?谢谢。
  • IF OBJECT_ID('TEMPDB..#NEWTABLE') IS NOT NULL BEGIN DROP TABLE #NEWTABLE END 转载于:https://www.cnblogs.com/eycbest/archive/2008/04/25/1171019.html
  • temporary table使用temporary tablespaceFrom oerr ora-1445214452, 00000, "attempt to create, alter or drop an index on temporary table already in use"// *Cause: An attempt was made to create, alter or ...
  • 当用户修改表结构时,sap会自动创建临时表临时表的名称为:'QCM'+表名。这个临时表用于先将需要改变结构的表数据保存下来,当新表结构完成后,系统会将临时表的数据拷贝回数据表。 临时表在sap3.0版本前始终保存在...
  • 经常会发现mysql中存储了一些相同的记录,而你又想要删除掉其中的一部份相同的记录,有些人可能会用到临时表或写程序来处理,今天我们将直接不创建临时表,直接使用mysql命令来删除掉相同的mysql记录方法。...
  • MySQL如何删除以“#sql-”开头的临时表
  • 原因 如果MySQL在一个 ALTER TABLE操作(ALGORITHM=INPLACE)的中间退出,那么可能会留下一个占用系统空间的临时表。例如,在对一张表(大表)添加索引时中途中断、磁盘不足导致异常或正在添加索引时实例被kill等等...
  • 如何删除30天前的临时备份? select concat('drop table ',table_schema,'.',table_name,';') from information_schema.tables where table_name like 'bak_%' and CREATE_TIME +----------------------------...
  • 1.使用局部临时表来调整自增长列select * from #newtemp from grade --相当于备份truncate table grade--删除数据insert into grade select classname from #newtemp 2.使用全局临时表来调整自增长列select * ...
  • 如何创建全局的临时表?

    千次阅读 2018-08-10 14:22:19
    全局临时表的生命周期一直持续到创建会话(不是创建级别)才终止。例如,如果你在存储过程中创建全局临时表,当超出存储过程的范围时,该表并不会被销毁。当创建会话终止后,SQL Server才会自动尝试删除该表,其他会话...
  • 如何删除oracle10g中建的默认临时表空间啊? 
  • 全局临时表的生命周期一直持续到创建会话(不是创建级别)才终止。例如,如果你在存储过程中创建全局临时表,当超出存储过程的范围时,该表并不会被销毁。当创建会话终止后,SQL Server才会自动尝试删除该表,其他会话...
  • sql server如何删除表中重复数据

    千次阅读 2018-08-25 21:39:18
    当我们需要删除表中重复的数据的时候,该如何操作呢?...4.删除临时表 理解起来是比较简单的,这里举个例子 --创建表 CREATE TABLE AA( Id int, Name varchar(10) ) --为表添加信息 INSERT INTO AA VALU...
  • 有时候我们的表中的...1.把A表的记录distinct后的结果放入到temp(临时表)  select distinct * into temp from A 2.把A表的记录清空  delete from A 3.把temp表的数据(没有重复记录)再插入到A表  insert
  • 如何删除数据中重复的记录

    千次阅读 2007-06-14 17:44:00
    如何删除数据表中重复的记录法1: --简单的方法就是借用临时表 --方式:把数据首先放到... --删除物理数据表 --从临时表把数据取出来,放入物理表中 --删除临时表 Select distinct * into #temp from table1 de
  • 上节讲了删除同一数据表中ID不同其他属性都相同的两条数据,在本节主要描述如何删除两条完全相同的数据。 主要思想: 把不同的数据从数据表导出到临时表,然后删除原表再重新导入。 一、首先会看到在student1有如下...
  • 没有异常的临时表文件。2、删除SQL中的数据后,退出时出错,系统报告说文件在使用。经检查,发现在临时文件夹中有一个没有文件名,只有扩展名的“.dbf”文件。destroy的程序如下:(其中windowtemp_loc=sys(2023)+"\...
  • 如何创建全局临时表、不知道having、不知道聚集索引和非聚集索引,更别提游标和提交叉表查询了  如何创建临时表 临时表与永久表相似,但临时表存储在 tempdb 中(如下图)。临时表有两种类型:本地临时表和全局...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 611
精华内容 244
关键字:

如何删除临时表