如何创建限制INT值1-5的表列?已尝试代码未生效
解决INT列取值范围限制的问题
你原来的代码里GroupYear INT FROM 1 TO 5是无效语法,SQL没有这种直接限定数值范围的写法。要实现取值1到5的限制,推荐用以下两种方法:
方法一:使用CHECK约束(通用方案)
这是大多数主流数据库(SQL Server、MySQL 8.0+、PostgreSQL等)都支持的标准写法,插入或更新数据时会自动验证数值范围:
CREATE TABLE Groups ( GroupID INT PRIMARY KEY NOT NULL, GroupName NVARCHAR(10) NOT NULL, GroupRating INT NOT NULL, GroupYear INT NOT NULL CHECK (GroupYear BETWEEN 1 AND 5) );
方法二:使用ENUM类型(MySQL专属)
如果用的是MySQL,也可以用ENUM来限定可选值,不过注意ENUM存储的是字符串类型,若需要数值需自行转换:
CREATE TABLE Groups ( GroupID INT PRIMARY KEY NOT NULL, GroupName NVARCHAR(10) NOT NULL, GroupRating INT NOT NULL, GroupYear ENUM('1','2','3','4','5') NOT NULL );
内容的提问来源于stack exchange,提问作者Jabi
相关产品推荐
相关产品推荐

