IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

三十三、CREATE TEMPORARY TABLE 创建临时表

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

文章永久连接:https://tech.souyunku.com/?p=4923

MySQL 临时表用于一些临时数据时是非常有用的

临时表只在当前连接可见,当关闭连接时,MySQL 会自动删除表并释放所有空间

因为 MySQL 临时表只在当前连接可见,如果使用 PHP 脚本来创建 MySQL 临时表,那每当 PHP 脚本执行完成后,该临时表也会自动销毁

如果连接到 MySQL 使用持久性连接,那么只有在关闭客户端程序时才会销毁临时表,当然也可以手动销毁

创建临时表

命令 CREATE TEMPORARY TABLE tablename 命令用来创建临时表

创建临时表的语法和 CREATE TABLE tablename 是一样的,只是多了一个 TEMPORARY 关键字

例如下面的语句用于创建一个临时表 tbl_language_temp

CREATE TEMPORARY TABLE IF NOT EXISTS `tbl_language_tmp`(
   `id` INT UNSIGNED AUTO_INCREMENT,
   `name` VARCHAR(64) NOT NULL,
   `url` VARCHAR(128) NOT NULL,
   `founded_at` DATE,
   PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

为了演示如何创建临时表和临时表的特性,我们需要打开两个终端,连接登录到 MySQL 服务,然后切换到 souyunku 数据库,我们假设两个终端的名字为 ab

1、 分别在 a 和 b 终端下使用 SHOW TABLES; 命令查看当前数据库有多少表

a 终端
    MariaDB [souyunku]> SHOW TABLES;
    +----------------+
    | Tables_in_souyunku |
    +----------------+
    | tbl_language   |
    +----------------+
    1 row in set (0.01 sec)
b 终端
    MariaDB [souyunku]> SHOW TABLES;
    +----------------+
    | Tables_in_souyunku |
    +----------------+
    | tbl_language   |
    +----------------+
    1 row in set (0.01 sec)
两个终端中的表一摸一样

如果你的和我的不一样,没关系,因为和当前数据库中有多少表一点关系都没有

2、 在 a 终端中运行以下语句创建临时表 tbl_language_temp

    CREATE TEMPORARY TABLE IF NOT EXISTS `tbl_language_tmp`(
       `id` INT UNSIGNED AUTO_INCREMENT,
       `name` VARCHAR(64) NOT NULL,
       `url` VARCHAR(128) NOT NULL,
       `founded_at` DATE,
       PRIMARY KEY ( `id` )
    )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
运行结果如下
    MariaDB [souyunku]> CREATE TEMPORARY TABLE IF NOT EXISTS `tbl_language_tmp`(
    ->            `id` INT UNSIGNED AUTO_INCREMENT,
    ->            `name` VARCHAR(64) NOT NULL,
    ->            `url` VARCHAR(128) NOT NULL,
    ->            `founded_at` DATE,
    ->            PRIMARY KEY ( `id` )
    ->         )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    Query OK, 0 rows affected (0.01 sec)
然后使用 `SHOW TABLES;` 命令查看一下当前数据中有多少表
    MariaDB [souyunku]> SHOW TABLES;
    +----------------+
    | Tables_in_souyunku |
    +----------------+
    | tbl_language   |
    +----------------+
    1 row in set (0.01 sec)
咦,没看到我们创建的临时表啊,不用着急,这是因为 `SHOW TABLES;` 命令是看不到表的

就是你看不到也摸不到,但是表就在那里

我们可以使用下面的语句往 `tbl_language_tmp` 中插入数据
    INSERT INTO `tbl_language_tmp` (`name`,`url`,`founded_at`) VALUES ('Python','https://tech.souyunku.com','1991-2-20');
运行结果如下
    MariaDB [souyunku]> INSERT INTO `tbl_language_tmp` (`name`,`url`,`founded_at`) VALUES ('Python','https://tech.souyunku.com','1991-2-20');
    Query OK, 1 row affected (0.00 sec)
可以使用 `SELECT * FROM tbl_language_tmp;` 查询表中的数据
    MariaDB [souyunku]> SELECT * FROM tbl_language_tmp;
    +----+--------+---------------------+------------+
    | id | name   | url                 | founded_at |
    +----+--------+---------------------+------------+
    |  1 | Python | https://tech.souyunku.com | 1991-02-20 |
    +----+--------+---------------------+------------+
    1 row in set (0.00 sec)

3、 然后我们在终端 b 中使用 SELECT * FROM tbl_language_tmp; 查询表中的数据

    MariaDB [souyunku]> SELECT * FROM tbl_language_tmp;
    ERROR 1146 (42S02): Table 'souyunku.tbl_language_tmp' doesn't exist
说明临时表只有创建时的连接内效用

4、 使用 CTRL+C 命令断开 a 终端中的连接,然后重新登录切换到 souyunku 数据库,运行 SELECT * FROM tbl_language_tmp; 查询表中的数据

    MariaDB [souyunku]> SELECT * FROM tbl_language_tmp;
    ERROR 1146 (42S02): Table 'souyunku.tbl_language_tmp' doesn't exist
发现断开后重新再连,表已经被删除了

干货推荐

本站推荐:精选优质专栏

附录:MySQL 教程:系列文章


Warning: A non-numeric value encountered in /data/wangzhan/tech.souyunku.com.wp/wp-content/themes/dux/functions-theme.php on line 1154
赞(61) 打赏



未经允许不得转载:搜云库技术团队 » 三十三、CREATE TEMPORARY TABLE 创建临时表

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码
IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

评论 抢沙发

大前端WP主题 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏


Fatal error: Uncaught Exception: Cache directory not writable. Comet Cache needs this directory please: `/data/wangzhan/tech.souyunku.com.wp/wp-content/cache/comet-cache/cache/https/tech-souyunku-com/index.q`. Set permissions to `755` or higher; `777` might be needed in some cases. in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php:367 Stack trace: #0 [internal function]: WebSharks\CometCache\Classes\AdvancedCache->outputBufferCallbackHandler() #1 /data/wangzhan/tech.souyunku.com.wp/wp-includes/functions.php(5109): ob_end_flush() #2 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(303): wp_ob_end_flush_all() #3 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /data/wangzhan/tech.souyunku.com.wp/wp-includes/plugin.php(470): WP_Hook->do_action() #5 /data/wangzhan/tech.souyunku.com.wp/wp-includes/load.php(1097): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php on line 367