MySQL Not Null命令没有做任何事情

时间:2013-10-28 21:25:10

标签: mysql sql null

我刚刚启动SQL,我正在尝试将表值从NULL更改为NOT NULL,除了命令提示符显示它没有被更改。

这是我输入的代码:

CREATE TABLE my_contacts
(
    last_name VARCHAR(30) NOT NULL,
    first_name VARCHAR(20) NOT NULL,
    email VARCHAR(50) NOT NULL,
    gender CHAR(1) NOT NULL,
    birthday DATE NOT NULL,
    profession VARCHAR(50) NOT NULL,
    location VARCHAR(50) NOT NULL,
    status VARCHAR(20) NOT NULL,
    interests VARCHAR(100) NOT NULL,
    seeking VARCHAR(100) NOT NULL
);

我无法发布图片,但是当我使用DESC my_contacts时;该表打印出来并在所有行的空列下显示“是”。

这是MySQL 5.6

1 个答案:

答案 0 :(得分:1)

正如你在评论中提到的那样。请按以下步骤操作:

但要记住一件事。如果您创建表并在其上插入了一些数据并将要更改的任何列保留为not null,则必须删除数据或将某些数据放在该字段为空。

alter table my_contacts modify last_name VARCHAR(30) NOT NULL;
alter table my_contacts modify first_name VARCHAR(20) NOT NULL;
alter table my_contacts modify email VARCHAR(50) NOT NULL;
alter table my_contacts modify gender CHAR(1) NOT NULL;
alter table my_contacts modify birthday DATE NOT NULL;
alter table my_contacts modify profession VARCHAR(50) NOT NULL;
alter table my_contacts modify location VARCHAR(50) NOT NULL;
alter table my_contacts modify status VARCHAR(20) NOT NULL;
alter table my_contacts modify interests VARCHAR(100) NOT NULL;
alter table my_contacts modify seeking VARCHAR(100) NOT NULl;

或者如果它更适合:

drop table my_contacts;

CREATE TABLE my_contacts
(
    last_name VARCHAR(30) NOT NULL,
    first_name VARCHAR(20) NOT NULL,
    email VARCHAR(50) NOT NULL,
    gender CHAR(1) NOT NULL,
    birthday DATE NOT NULL,
    profession VARCHAR(50) NOT NULL,
    location VARCHAR(50) NOT NULL,
    status VARCHAR(20) NOT NULL,
    interests VARCHAR(100) NOT NULL,
    seeking VARCHAR(100) NOT NULL
);
相关问题