代码之家  ›  专栏  ›  技术社区  ›  Tomislav Nakic-Alfirevic

如何删除非空约束?

  •  53
  • Tomislav Nakic-Alfirevic  · 技术社区  · 14 年前

    假设有一个表创建如下:

    create table testTable ( colA int not null )
    

    如何删除非空约束?我在找一些符合

    ALTER TABLE testTable ALTER COLUMN colA DROP NOT NULL;
    

    如果我使用PostgreSQL,它会是什么样子。令我惊讶的是,据我所知,MySQL文档、Google和Yes,甚至StackOverflow(尽管有几十个或数百个与空相关的问题)似乎都不会导致生成一个简单的SQL语句来完成这项工作。

    7 回复  |  直到 7 年前
        1
  •  73
  •   Tomislav Nakic-Alfirevic    14 年前

    我想尝尝这个

    ALTER TABLE testTable MODIFY COLUMN colA int;
    
        2
  •  9
  •   Seva Alekseyev    11 年前

    在MySQL中,空性是数据类型的一部分,而不是约束。所以:

    ALTER TABLE testTable MODIFY COLUMN colA int null; 
    
        3
  •  3
  •   Noah Ternullo    13 年前

    语法实际上是关闭的:

    ALTER TABLE testTable CHANGE colA colA int null;
    
        4
  •  1
  •   dethtron5000    9 年前

    尝试

    ALTER TABLE testTable MODIFY COLUMN columnA int;
    
        5
  •  0
  •   pacholik    8 年前

    这对我有用

    ALTER TABLE table_name
    MODIFY COLUMN column_name VARCHAR(25) UNIQUE;
    
        6
  •  0
  •   BDL Vyxzl    8 年前

    当您在MySQLWorkbench中修改表约束或数据类型时,它将显示完成请求将要执行的代码。 这是我从那个盒子里得到的查询。

    ALTER TABLE `table_name`.`column_name`  CHANGE COLUMN `column_name` `colunm_name`datatype NULL ;
    

    但这里要注意的是,主键不能为空,必须将其设置为唯一的。

        7
  •  0
  •   iainn    7 年前
    ALTER TABLE test.tbl_employee 
    CHANGE COLUMN `DepartmentId` `DepartmentId` INT(11) NULL;