【发布时间】:2016-07-05 08:09:25
【问题描述】:
我正在为一个相当大的表编写CREATE TABLE 语句,该表将通过.csv 文件加载。
我需要通过将三个字段连接在一起来创建一个PRIMARY KEY:
STORE_NBRCONTROL_NBRLINE_NBR
并将新创建/命名的字段附加到每条记录的开头。
这在CREATE TABLE 语句中是否可行?还是我必须在事后使用APPEND?
那我该怎么做呢?
编辑 ----- 2016 年 3 月 21 日
我仍然被告知我应该能够在创建表本身时连接三个字段,即 -
CREATE TABLE Mistints(
CONCAT(storeNbr,controlNbr,lineNbr) AS pKey,
storeNbr INT,
controlNbr INT,
lineNbr INT,
salesNbr VARCHAR(15) etc etc
但我在尝试这样做时遇到了错误。我的主管希望将串联字段附加到每条记录的开头,并将其作为主键。有没有办法在 Create Table 语句中这样做?还是我必须在事后进行更新?或者在我加载表格时这样做(通过 .csv 文件)?
【问题讨论】:
-
为什么你认为你需要那 3 部分的 PK?这3个分别代表什么?根据通常的命名约定,LINE_NBR 听起来像是一个独特的“计数器”,它本身可能就是 PK(设置为 AUTO_INCREMENT)。然后在您的查询中,您可以在查询中使用 SELECT... CONCAT(STORE_NBR,'-', CONTROL_NBR)...。
-
我必须遵循非常具体的指导方针。
标签: mysql concatenation primary-key create-table