【问题标题】:How to create a temporary table using the MEMORY engine like another table如何像创建另一个表一样使用 MEMORY 引擎创建临时表
【发布时间】:2023-01-29 22:00:06
【问题描述】:

我需要一张与现有表格布局相同的临时表格。这会在 engine 行引发语法错误:

create table t
like r
engine = MEMORY

或者这是不可能的?

【问题讨论】:

标签: mysql mariadb


【解决方案1】:

创建像现有表一样的 temptable,然后更改其引擎。请记住,MEMORY 引擎不支持某些列数据类型 (TEXT/BLOB/JSON)。

CREATE TABLE test1 (id SERIAL PRIMARY KEY, val VARCHAR(255));
CREATE TEMPORARY TABLE test2 LIKE test1;
SHOW CREATE TABLE test2;
Table Create Table
test2 CREATE TEMPORARY TABLE `test2` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `val` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
ALTER TABLE test2 Engine = MEMORY;
SHOW CREATE TABLE test2;
Table Create Table
test2 CREATE TEMPORARY TABLE `test2` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `val` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=MEMORY DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 2018-05-05
    • 1970-01-01
    相关资源
    最近更新 更多