如何将MariaDB中的现有列更改为Not Null?

时间:2016-03-02 16:11:22

标签: mysql mariadb notnull

  

消息:您的SQL语法有错误;检查手册   对应于您的MariaDB服务器版本以获得正确的语法   在''country_of_residence_id'INTEGER NOT NULL'附近使用声明:   ALTER TABLE地址ALTER COLUMN'country_of_residence_id'INTEGER NOT   NULL

在我的表'地址'中,我想将现有的列'country_of_residence_id'设置为NOT NULL。

我试过这种方式:

ALTER TABLE address
ALTER COLUMN 'country_of_residence_id' INTEGER NOT NULL;

我的IDE强调INTEGER并说:DROP或SET预期,得到“INTEGER”

当我在INTEGER之前添加SET时,它也不起作用。

2 个答案:

答案 0 :(得分:1)

我在这里找到了: https://mariadb.com/kb/en/mariadb/alter-table/

alter table address modify country_of_residence_id bigint unsigned NOT NULL;

答案 1 :(得分:1)

首先,让所有现有的 NULL 行值消失:

UPDATE [Table_Name] SET [Column_Name]=0 WHERE [Column_Name] IS NULL;

然后,更新(更改)表定义以拒绝NULL

ALTER TABLE [Table_Name] MODIFY [Column_Name] BIGINT UNSIGNED NOT NULL;