next up previous contents
Next: 實機操作練習題 Up: 其他 Previous: Metadata 後設資料   Contents   DYWANG_HOME

Temporary 暫時資料表

  1. 暫時資料表只有連線時使用,client session 終止後,也就是登出後就刪除。
  2. 拍賣網站上的購物車機制,不需要保存到下次登入使用,就可使用 temporary table。
  3. 產生一個暫時資料表 sales。
    mariadb root@localhost:dyw> create temporary table sales(product varchar(20) not
                                 null,price decimal(7,2) not null default 0.00);    
    Query OK, 0 rows affected
    Time: 0.003s
    
  4. 暫時資料表 sales 存在,但使用 Show tables 不會出現。
    mariadb root@localhost:dyw> show tables;                                        
    +----------------+
    | Tables_in_dyw  |
    +----------------+
    | animals        |
    | clone1_animals |
    | clone_animals  |
    | dcount         |
    | employees      |
    | indextab       |
    | tbl            |
    +----------------+
    
    7 rows in set
    Time: 0.021s
    
  5. 在暫時資料表 sales 新增一筆紀錄。
    mariadb root@localhost:dyw> insert into sales(product,price) values('computer',2
                                0000);                                              
    Query OK, 1 row affected
    Time: 0.004s
    
  6. 列出暫時資料表 sales 的紀錄。
    mariadb root@localhost:dyw> select * from sales;                                
    +----------+----------+
    | product  | price    |
    +----------+----------+
    | computer | 20000.00 |
    +----------+----------+
    1 row in set
    Time: 0.062s
    
  7. 登出 mariadb。
    mariadb root@localhost:dyw> quit;                                               
    Goodbye!
    
  8. 再登入 mariadb,並使用 dyw 資料庫。
    [root@kvm8 ~]# mycli -S /var/lib/mysql/mysql.sock -uroot -p123qwe 
    mariadb 10.3.11-MariaDB
    mycli 1.20.1
    Chat: https://gitter.im/dbcli/mycli
    Mail: https://groups.google.com/forum/#!forum/mycli-users
    Home: http://mycli.net
    Thanks to the contributor - Steve Robbins
    
  9. 查看上次產生暫時資料表 sales 已不存在。
    mariadb root@localhost:(none)> use dyw;                                         
    You are now connected to database "dyw" as user "root"
    Time: 0.001s
    mariadb root@localhost:dyw> select * from sales;                                
    (1146, "Table 'dyw.sales' doesn't exist")
    



De-Yu Wang 2020-04-07