gpt4 book ai didi

sql - 在SQL Server中创建枚举

转载 作者:行者123 更新时间:2023-12-04 23:46:25 26 4
gpt4 key购买 nike

我试图像在MySQL中那样创建一个枚举

USE WorldofWarcraft;

CREATE TABLE [users]
(
ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
username varchar(255),
password varchar(255),
mail varchar (255),
rank ENUM ('Fresh meat', 'Intern','Janitor','Lieutenant','Supreme being')DEFAULT 'Fresh meat',
);

但是,我发现这在SQL Server中是不可能的,所以我的问题是,如何解决这个问题?

我已经看过这篇文章

SQL Server equivalent to MySQL enum data type?

建议类似
mycol VARCHAR(10) NOT NULL CHECK (mycol IN('Useful', 'Useless', 'Unknown'))

但是,我也无法正常工作,如何创建默认值?

此致。

编辑:枚举的目的是要在该站点上有一个下拉列表,公会负责人可以在该站点上设置某人的等级。用户创建帐户时,默认等级为“鲜肉”。

最佳答案

最好适本地规范化模型:

create table user_rank
(
id integer primary key, -- no identity, so you can control the values
rank varchar(20) not null unique
);

insert into user_rank (id, rank)
values
(1, 'Fresh Meat'),
(2, 'Intern'),
(3, 'Janitor'),
(4, 'Lieutenant'),
(5, 'Supreme being');

CREATE TABLE [users]
(
ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
username varchar(255),
password varchar(255),
mail varchar (255),
rank integer not null default 1,
constraint fk_user_rank foreign key (rank) references user_rank (id)
);

您可以通过查询 user_rank表轻松地填充网站上的下拉列表。

关于sql - 在SQL Server中创建枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52222884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com