CONCAT_WS在CREATE TABLE语句中创建PRIMARY KEY的三个字段

时间:2016-03-18 14:12:27

标签: mysql concatenation primary-key create-table

我正在为一个相当大的表写一个CREATE TABLE语句,该表将通过.csv文件加载。

我需要通过将三个字段连接在一起来创建PRIMARY KEY

  • STORE_NBR
  • CONTROL_NBR
  • LINE_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文件)这样做?

1 个答案:

答案 0 :(得分:1)

可以通过CREATE TABLE将以下行添加到表定义的末尾:

CREATE TABLE TAB_NAME(
  STORE_NBR [data type]([size]) [column constraint],
  CONTROL_NBR [data type]([size]) [column constraint],
  LINE_NBR [data type]([size]) [column constraint],
  .
  .
  .
  PRIMARY KEY (STORE_NBR, CONTROL_NBR, LINE_NBR)
  );