CREATE TABLE person
(person_id SMALLINT UNSIGNED,
fname VARCHAR(20),
lname VARCHAR(20),
eye_color ENUM('BR','BL','GR'),
birth_date DATE,
street VARCHAR(30),
city VARCHAR(20),
state VARCHAR(20),
country VARCHAR(20),
postal_code VARCHAR(20),
CONSTRAINT pk_person PRIMARY KEY (person_id)
);
我期待它创建一个表
这是我得到的错误
消息 102,级别 15,状态 1 第 4 行“UNSIGNED”附近的语法不正确。完成时间:2023-04-25T13:13:37.8984135-04:00》
你没有使用 MySQL。您正在使用 Microsoft SQL Server。
尽管共享一个共同的第一个音节,但这是两个不同的软件产品,具有不同的功能。在某些情况下,适用于 MySQL 的 SQL 语法和数据类型不适用于 Microsoft SQL Server,反之亦然。
例如,Microsoft SQL Server 不支持 UNSIGNED 或 ENUM。
在 Microsoft SQL Server 中,您可以使用:
而不是 SMALLINT UNSIGNEDperson_id SMALLINT CHECK (person_id >= 0)
在 Microsoft SQL Server 中,您可以使用:
而不是 ENUMeye_color CHAR(2) NOT NULL CHECK (eye_color IN ('BR','BL','GR'))
但是,我认为将眼睛颜色限制那么多并不是一个好的设计。还有其他颜色,如淡褐色、灰色或其他颜色。有些人的眼睛颜色各不相同。真实人物的变化比你想象的要多。可能您会更明智地使用 VARCHAR(20)。