You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写要求三个字段必填的SQL CHECK约束?

问题解答

首先,你已经给PatientMRN、FirstName、LastName三个字段加上了NOT NULL约束,这已经能强制要求这三个字段必须被输入值,不需要额外的CHECK约束来实现这个需求。

不过你的表创建语句存在几个错误,需要修正:

  • 主键字段PatientD在表定义里不存在,应该改为实际存在的字段,比如PatientMRN(它已经是NOT NULL UNIQUE,适合作为主键)
  • CHECK约束的语法错误:正确的CHECK约束需要明确条件表达式,且要闭合括号,同时表元素之间需要用逗号分隔

修正后的表创建语句如下:

CREATE TABLE Patient (
  PatientMRN char(6) NOT NULL UNIQUE,
  FirstName varchar(24) NOT NULL,
  LastName varchar(64) NOT NULL,
  PRIMARY KEY (PatientMRN) -- 修正为主键字段为存在的PatientMRN
  -- 若执意要加CHECK约束(实际没必要),可添加下面这行,注意前面加逗号
  -- , CHECK (PatientMRN IS NOT NULL AND FirstName IS NOT NULL AND LastName IS NOT NULL)
);

补充说明:

  • NOT NULL是专门用来确保字段不能为NULL的约束,比CHECK约束更直接高效
  • 你提供的INSERT语句在表结构修正后可以正常执行

内容的提问来源于stack exchange,提问作者nancee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 06:20:58