【问题标题】:Define keys in temporary table creation在临时表创建中定义键
【发布时间】:2012-06-27 15:02:28
【问题描述】:

如何为从 SELECT 语句创建的临时表定义键?

我有:

CREATE temporary TABLE _temp_unique_parts_trading 
engine=memory AS 
  (SELECT parts_trading.enquiryref, 
          sellingcurrency, 
          jobs.id AS jobID 
   FROM   parts_trading, 
          jobs 
   WHERE  jobs.enquiryref = parts_trading.enquiryref 
   GROUP  BY parts_trading.enquiryref) 

但是我在哪里定义键呢?

【问题讨论】:

  • 您是否尝试过仅对表使用普通键定义?
  • 什么意思?我已经看到不是从设置了索引列的 SELECT 语句创建的表,但不像我的那样。
  • 现在没关系,因为您已经看到了 Ajreal 的答案,但基本上您需要完全声明列。

标签: mysql temp-tables


【解决方案1】:

你可以这样做

创建临时表 _temp_unique_parts_trading ( enquiryref varchar(255), 卖出货币 varchar(255), 工作ID int(10), 键(作业 ID) ) 引擎=内存 AS (选择parts_trading.enquiryref, 卖出货币, 作业 ID 作为作业 ID 从parts_trading, 工作 WHERE jobs.enquiryref = parts_trading.enquiryref 按parts_trading.enquiryref 分组)

基本上在 TABLE_NAME 之后附加表架构(索引、列数据类型)

【讨论】:

  • 谢谢!指定唯一索引的语法是什么?我假设 key(jobId) 使 jobId 成为主键,对吗?
  • KEY(column_name) 使其成为非唯一、非主要的简单索引; PRIMARY KEY(column_name) 或 UNIQUE KEY(column_name) 使列成为主列或唯一列。
猜你喜欢
  • 2010-11-04
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 2019-12-07
  • 2019-01-22
  • 1970-01-01
相关资源
最近更新 更多