如何在 mysql 中将主键从 null 更改为 not null?
how to change primary key from null to not null in mysql?
我有以下table
create table ooor (
id int(10) PRIMARY KEY,
name varcha(20),
city varchar(20) UNIQUE KEY
);
并且其显示的主键值为空,我希望在不删除 table.
的情况下将其值更改为非空
那么,我该怎么做呢??
来自
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| city | varchar(20) | YES | UNI | NULL | |
+-------+-------------+------+-----+---------+-------+
到
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | NO | PRI | NOT NULL| |
| name | varchar(20) | YES | | NULL | |
| city | varchar(20) | YES | UNI | NULL | |
+-------+-------------+------+-----+---------+-------+
注意:我知道其具有主键值的列默认情况下不为空,我想更改其写入值(NULL 为 NOT NULL)。
使用 Heidi Sql 实际执行您刚才所说的,这是为完成您的要求而执行的命令。这不需要您重新制作 table 或任何东西。它只是改变了 table 所在的位置。
ALTER TABLE `ooor`
CHANGE COLUMN `id` `id` INT(50) NOT NULL
我有以下table
create table ooor (
id int(10) PRIMARY KEY,
name varcha(20),
city varchar(20) UNIQUE KEY
);
并且其显示的主键值为空,我希望在不删除 table.
的情况下将其值更改为非空
那么,我该怎么做呢??
来自
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| city | varchar(20) | YES | UNI | NULL | |
+-------+-------------+------+-----+---------+-------+
到
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | NO | PRI | NOT NULL| |
| name | varchar(20) | YES | | NULL | |
| city | varchar(20) | YES | UNI | NULL | |
+-------+-------------+------+-----+---------+-------+
注意:我知道其具有主键值的列默认情况下不为空,我想更改其写入值(NULL 为 NOT NULL)。
使用 Heidi Sql 实际执行您刚才所说的,这是为完成您的要求而执行的命令。这不需要您重新制作 table 或任何东西。它只是改变了 table 所在的位置。
ALTER TABLE `ooor`
CHANGE COLUMN `id` `id` INT(50) NOT NULL