如何限制 MySQL 内的 INT?

How can I limit INT in MySQL?

我正在使用 Java 创建一个大学评分系统。我在课程 table 中有一个学分编号列。我希望将此信用号限制在 1 到 8 之间。我不想输入任何其他数字。我是初学者。

CREATE TABLE courses(
id INT PRIMARY KEY,
course_name VARCHAR(50) NOT NULL,
credit_number BETWEEN 1 AND 8 NOT NULL,
course_description VARCHAR(255));

已接受的答案略有不同 -

您也可以使用 TINYINT 而不是 INT,这会将可能的范围限制为 -128 到 127(一个字节),这没关系,因为您只需要 1-8: https://dev.mysql.com/doc/refman/5.7/en/integer-types.html

CREATE TABLE courses (
    id INT PRIMARY KEY,
    course_name VARCHAR(50) NOT NULL,
    credit_number TINYINT NOT NULL,
    course_description VARCHAR(255),
    CONSTRAINT chk_courses_credit_number CHECK (credit_number BETWEEN 1 AND 8)
);

使用check约束:

CREATE TABLE courses (
    id INT PRIMARY KEY,
    course_name VARCHAR(50) NOT NULL,
    credit_number int NOT NULL,
    course_description VARCHAR(255),
    CONSTRAINT chk_courses_credit_number CHECK (credit_number BETWEEN 1 AND 8)
);