我正在一个名为'production'的数据库中创建一个新表,方法是连接另一个名为'crawler'的数据库中的两个表的数据。我使用以下SQL查询创建此新表(此查询完美地运行):
CREATE TABLE files_and_metas_joined
SELECT
crawler.files.id,
crawler.files.company_id,
crawler.file_metas.title,
crawler.file_metas.h1_tags
FROM
crawler.files,
crawler.file_metas
WHERE
crawler.files.id = crawler.file_metas.file_id
AND
crawler.files.processed = 1
AND
crawler.files.junk = 0
我还要将以下索引添加到此表中,但似乎无法弄清楚如何在同一SQL查询中执行此操作。
PRIMARY KEY (`id`),
KEY `company_id` (`company_id`),
KEY `title` (`title`),
KEY `h1_tags` (`h1_tags`)
这可以在用于创建表的同一查询中完成吗?如果没有,我如何在事后用查询添加这些索引?
答案 0 :(得分:4)
您可以在同一声明中执行此操作,只需在SELECT
:
CREATE TABLE files_and_metas_joined
(
PRIMARY KEY (`id`),
KEY `company_id` (`company_id`),
KEY `title` (`title`),
KEY `h1_tags` (`h1_tags`)
)
SELECT
crawler.files.id,
crawler.files.company_id,
crawler.file_metas.title,
crawler.file_metas.h1_tags
FROM
crawler.files,
crawler.file_metas
WHERE
crawler.files.id = crawler.file_metas.file_id
AND
crawler.files.processed = 1
AND
crawler.files.junk = 0