如何避免sql中的空条目?

如何避免sql中的空条目?,sql,Sql,这是我的桌子。 如果我像这样插入查询,则插入emp3值(3,,,,,,);它正在存储在表中。 但是我应该避免这种情况。我该怎么做呢?您可以根据需要添加约束: CREATE TABLE emp3( id int(3) auto_increment, first_name varchar(30) NOT NULL, last_name varchar(30), email varchar(20) not null unique, PRIMARY KEY (id) )

这是我的桌子。 如果我像这样插入查询,则插入emp3值(3,,,,,,);它正在存储在表中。
但是我应该避免这种情况。我该怎么做呢?

您可以根据需要添加约束:

CREATE TABLE emp3(
   id int(3) auto_increment,
   first_name varchar(30) NOT NULL,
   last_name varchar(30), 
   email varchar(20) not null unique,
   PRIMARY KEY (id)
) 
创建表emp3(
id int(3)自动增量,
first_name varchar(30)不为空,
姓氏varchar(30),
电子邮件varchar(20)非空唯一,
主键(id)
);
更改表emp3
添加约束检查\u名称\u非\u空白检查((第一个\u名称“”),
添加约束检查\u电子邮件\u非\u空白检查((电子邮件“”)

您应该避免列中的空字符串带有如下约束

CREATE TABLE emp3(
   id int(3) auto_increment,
   first_name varchar(30) NOT NULL,
   last_name varchar(30), 
   email varchar(20) not null unique,
   PRIMARY KEY (id)
);

ALTER TABLE emp3
ADD CONSTRAINT check_name_not_blank CHECK ((first_name<>'')),
ADD CONSTRAINT check_email_not_blank CHECK ((email<>''))
用CHECK更改表emp3
添加约束[CK_emp3]检查
(
([名字]”)和
([姓氏]”)和
([电子邮件]“”)
)

只需将它们设置为非空即可

ALTER TABLE emp3 WITH CHECK 
ADD  CONSTRAINT [CK_emp3] CHECK  
      (
         ([first_name]<>'') AND
         ([last_name]<>'')  AND
         ([email ]<>'')  
      )

这就是
DBMS
您可以为其添加检查约束,以便在输入无效值时引发异常,或者可以定义触发器来阻止此类插入。我得到的错误如下所示。您的SQL语法中有一个错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法。检查添加约束[check_name_not_blank]check([first_name]“”)),第1行的CONSTRA没有显示任何错误。但检查约束不起作用
CREATE TABLE emp3(
   id int(3) auto_increment,
   first_name varchar(30) NOT NULL,
   last_name varchar(30), 
   email varchar(20) not null unique,
   PRIMARY KEY (id)
)