从选择查询创建表的 MySQL 语法

标签 mysql sql

我正在尝试使用创建表的永久子集

create table copydata (select a.* from tabla a
         left join table b 
         on st_distance(a.point, b.point) <= 10
         and b.x is null) 

这可行,但将表“copydata”构建为 InnoDB 表。我需要它是一个 ISAM 表,以便我可以构建空间索引。我已经尝试过

create table copydata (select a.* from tablea a
         left join tableb b 
         on st_distance(a.point, b.point) <= 10
         and b.x is null) ENGINE=MyISAM DEFAULT CHARSET=utf8 

但这提示语法错误。

我错过了什么?

问候

最佳答案

只需更改语句的顺序:

create table copydata ENGINE=MyISAM DEFAULT CHARSET=utf8 (select a.* from tablea a
         left join tableb b 
         on st_distance(a.point, b.point) <= 10
         and b.x is null) 

关于从选择查询创建表的 MySQL 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26320837/

相关文章:

MySQL LEFT JOIN 在连接表上使用 MAX 和 GROUP BY 并获取与一列的 MAX 值相对应的其他列?

SQL:检索唯一结构

php - 只有一个盒子而不是两个

mysql - 带有 Centos7 的 NGINX 上的 phpmyadmin 显示空白页面?

sql - 这个整数是什么意思?

php - 如何在 WHERE row = (?) SQL php 语句中放置多个值

MySQL发生错误: Operand should contain 1 column(s)

java - 从 JSON 创建 CLOB 属性

mysql - 仅当语句为 true 时才插入

sql - 如何在sql查询中选择前30个字符?