Temporary 暫時資料表

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