MySQL Not Null命令是';我什么也没做

MySQL Not Null命令是';我什么也没做,mysql,sql,null,Mysql,Sql,Null,我刚刚启动SQL,并试图将一个表的值从NULL更改为NOTNULL,但命令提示符显示它没有被更改 下面是我输入的代码: 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,

我刚刚启动SQL,并试图将一个表的值从NULL更改为NOTNULL,但命令提示符显示它没有被更改

下面是我输入的代码:

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时;该表打印出来,并在所有行的null列下显示“是”


这是MySQL 5.6,正如您在评论中提到的。按以下步骤进行:

但请记住一件事。如果您创建了表并在表中插入了一些数据,并且保留了要更改为
not null
的任何列,则必须删除这些数据或将一些数据放在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
);

我已经试着执行DDL脚本,当我运行desc命令时,一切正常。并非所有列都可以为空。你是在尝试更改现有表还是只是重新创建它?我刚刚意识到我在做什么,我正在尝试编辑一个表,而不是创建一个表。我该怎么做呢?但你的剧本是以。。。。创建表格…您必须为每列执行
altertable
命令。或者干脆放下桌子,然后重新创建它。这会更容易