从数据库中的列更改数据类型

时间:2018-11-27 20:23:34

标签: mysql database types sqldatatypes

我想从数据库中的表更改变量的数据类型。我要更改的数据类型属于变量'exercise_id',从 INT 更改为 INT NOT NULL AUTO_INCREMENT 。问题是'exercise_id'是PRIMARY KEY,由于我不想丢失数据,我担心会破坏表。您知道在不删除任何内容的情况下更改数据类型的任何方法吗?谢谢。我将MySQL与软件MySQL Workbench 6.3一起使用

我拥有的桌子:

CREATE TABLE exercises (
    exercise_id INT,
    title VARCHAR(50),
    text text,
     PRIMARY KEY(exercise_id)
);

我想要的桌子:

CREATE TABLE exercises (
    exercise_id INT NOT NULL AUTO_INCREMENT,
    title VARCHAR(50),
    text text,
    PRIMARY KEY(exercise_id)
);

可以这样吗?

ALTER TABLE exercises MODIFY exercise_id INT NOT NULL AUTO_INCREMENT;

1 个答案:

答案 0 :(得分:1)

就像你展示自己一样,台词

ALTER TABLE exercises MODIFY exercise_id INT NOT NULL AUTO_INCREMENT;

确实可以用来进行所需的更改。 NOT NULL不应更改任何内容,因为该字段已经是主键。 AUTO_INCREMENT不受限制:它不会检查所有ID是否都是递增的,只要是唯一的,您甚至可以添加自己的ID。

您将需要考虑表的未来需求。重新生成id列以充分利用自动增量功能可能会有所帮助。不过,这非常适合用例。