【问题标题】:Alter data type from column in database更改数据库中列的数据类型
【发布时间】:2019-04-29 15:48:43
【问题描述】:

我想从数据库中的表中更改变量的数据类型。我要更改的数据类型属于变量'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;

【问题讨论】:

  • 我们需要知道你使用的是哪种sql方言和哪个数据库引擎。主键应该已经不为空,但如果没有这些信息,我们无法预测设置 auto_increment 时会发生什么。
  • @AWhitePelican 我正在将 MySQL 与 MySQL Workbench 6.3 软件一起使用

标签: mysql database types sqldatatypes


【解决方案1】:

就像你展示的那样,这条线

ALTER TABLE exercises MODIFY exercise_id INT NOT NULL AUTO_INCREMENT;

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

您需要考虑餐桌的未来必需品。重新生成 id 列以充分利用自动增量功能可能是有益的。不过,这是非常特定于用例的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 2023-02-09
    • 2019-02-04
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多