在没有索引的情况下,从源表创建临时表的MySQL语句

3
我正在尝试从我的数据库中“复制”一个表来创建一个临时表。然而,我需要不复制索引。
我现在正在使用以下查询:
CREATE TEMPORARY TABLE temp365 LIKE contactlens;

但是结果表也包含索引。我查看了文档,没有找到不带索引复制结构的方法。 由于我不能为索引指定静态名称,我想知道如何使用简单的SQL删除所有索引。 我一开始尝试避免完全复制它们,但似乎不可能。

5
请使用CREATE TABLE ... SELECT命令。 - wchiquito
1个回答

6

这只是提供一些示例以回应@wchiquito的评论

使用CREATE TABLE ... SELECT命令很容易创建一个没有索引的表的副本。

如果您不需要从原始表中复制任何行,只需在WHERE子句中提供false值或在LIMIT中指定0即可。以下是一些示例:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] temp365 SELECT * FROM contactlens WHERE 0;

或者有一种稍微不同的方式:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] temp365 SELECT * FROM contactlens LIMIT 0;

这样做可以获得与CREATE TABLE ... LIKE相同的结果,但不会保留索引。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接