【问题标题】:How to Change Default Null to NOT NULL in MySQL如何在 MySQL 中将默认 Null 更改为 NOT NULL
【发布时间】:2017-07-13 12:30:47
【问题描述】:

我在表 room 中有以下列现在我想将列 property_id 的定义从 NULL 更改为 NOT NULL 我该怎么做 以下查询不起作用

ALTER TABLE `room` CHANGE `property_id` `property_id` bigint(20)  NOT NULL;

Column的实际定义是:

 `property_id` bigint(20) DEFAULT NULL,

【问题讨论】:

  • 在更改表定义之前是否有任何行包含NULL
  • 是的,我应该删除那些行吗?
  • 在更改列条件之前是的
  • @SFAH 您本身不需要删除它们。但是当您更改列定义时,它们不能是NULL。您需要如何处理数据取决于您的数据以及您如何使用它。
  • @SFAH,那么你不能这样做,你必须先处理那些NULL,否则如果会与列属性冲突

标签: mysql sql null default alter-table


【解决方案1】:

在 mysql 中你可以做到这一点,

ALTER TABLE room MODIFY property_id bigint(20) not null;

【讨论】:

  • 在其他 dbms 中,例如 oracle,它不允许您更改非空列,但是当您更改列时,mysql 会自动为您转换内容
  • @SFAH,但是您在查询中保留了两个“property_id”。检查一次。
【解决方案2】:

我的查询非常好,唯一的错误是有些行包含空记录,所以它为什么会产生问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 2021-09-15
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    相关资源
    最近更新 更多