我需要一个与现有表布局相同的临时表。这会在engine行引发语法错误:
engine
create table t like r engine = MEMORY
或者这是不可能的?
polkgigr1#
创建类似于现有表的临时表,然后更改其引擎。请记住,MEMORY引擎不支持某些列数据类型(TEXT/BLOB/JSON)。
CREATE TABLE test1 (id SERIAL PRIMARY KEY, val VARCHAR(255));
CREATE TEMPORARY TABLE test2 LIKE test1;
SHOW CREATE TABLE test2;
| 表|创建表格|| - ------|- ------|| 测试2|创建临时表'test2'('id' bigint无符号NOT NULL自动增量,'val' varchar(255)默认值为空,主键('id'),唯一密钥'id'('id'))引擎= InnoDB默认字符集= utf8mb4校对= utf8mb4_0900_ai_ci|一个三个三个一个| 表|创建表格|| - ------|- ------|| 测试2|创建临时表'test2'('id' bigint无符号NOT NULL自动增量,'val' varchar(255)默认值为空,主键('id'),唯一密钥'id'('id'))引擎=存储器默认字符集= utf8mb4校对= utf8mb4_0900_ai_ci|fiddle
1条答案
按热度按时间polkgigr1#
创建类似于现有表的临时表,然后更改其引擎。请记住,MEMORY引擎不支持某些列数据类型(TEXT/BLOB/JSON)。
| 表|创建表格|
| - ------|- ------|
| 测试2|创建临时表'test2'('id' bigint无符号NOT NULL自动增量,'val' varchar(255)默认值为空,主键('id'),唯一密钥'id'('id'))引擎= InnoDB默认字符集= utf8mb4校对= utf8mb4_0900_ai_ci|
一个三个三个一个
| 表|创建表格|
| - ------|- ------|
| 测试2|创建临时表'test2'('id' bigint无符号NOT NULL自动增量,'val' varchar(255)默认值为空,主键('id'),唯一密钥'id'('id'))引擎=存储器默认字符集= utf8mb4校对= utf8mb4_0900_ai_ci|
fiddle