在mySQL数据库

时间:2017-12-11 08:49:15

标签: mysql

我有以下记录,我需要插入一个名为"记录"的新列。生成的ID按升序排列;我们如何在" MySQL"数据库?

TERM_CODE   SUBJ_CODE   CRSE_NUMB   SCHD_CODE       CREDIT_HRS
201710  CHEN                311           L             93
201710  CHEN                311           L             96
201710  CHEN                314           L             78
201710  CHEN                314           L             81

如下所示:

Record  TERM_CODE   SUBJ_CODE   CRSE_NUMB   SCHD_CODE   CREDIT_HRS
1        201710       CHEN         311         L          93
2        201710       CHEN         311         L          96
3        201710       CHEN         314         L          78
4        201710       CHEN         314         L          81

我的DDL如下:

Field          Type    Collation    Null
TERM_CODE   varchar(28) utf8_bin    NO
SUBJ_CODE   varchar(20) utf8_bin    NO
CRSE_NUMB   varchar(24) utf8_bin    NO
CRSE_LVL    varchar(50) utf8_bin    YES
PIDM         double                 NO
Count        double                 YES
Earned      varchar(20) utf8_bin    YES
Job_Type    varchar(50) utf8_bin    YES
COST        varchar(50) utf8_bin    YES
COST_DES    varchar(83) utf8_bin    YES

1 个答案:

答案 0 :(得分:1)

这个问题可以分为三个步骤:

<强> 1。添加列

假设表名为table_name,然后添加名为records且类型为int的列,请执行以下命令:

ALTER TABLE table_name ADD record int;

<强> 2。使用数字序列

更新所有行的列

为此,您需要一个额外的字段。假设我们为此字段选择名称@rank。这是使用数字序列更新该列的方法:

SET @rank:=0;
update table_name
set record=@rank:=@rank+1;

第3。 (可选)添加AUTO_INCREMENT属性

您可能希望在记录中添加AUTO_INCREMENT属性,这样您就不需要手动确定record的值。为此,列record必须是主键。

如果表已有主键,则必须先使用以下命令将其删除:

ALTER TABLE table_name DROP PRIMARY KEY;

然后,您可以将AUTO_INCREMENT属性添加到记录中,同时将其设置为主键:

ALTER TABLE table_name CHANGE record record int AUTO_INCREMENT PRIMARY KEY;