0

我正在尝试在我的 MySQL 转换过程中为 SQL Server 中的 ENUM 数据类型找到替代方案。我知道检查约束存在,但我希望简单地创建新表来完全替换枚举对象。所以目标的要点:

Create Table Enum OrderType {
   Buy = 1;
   Sell = 2;
   Short = 3;
   Cover = 4;
}

C# 可以根据需要轻松调用这些值。有什么办法可以做到这一点?还是我必须使用支票?

4

1 回答 1

0

您可以使用这些值创建一个表,并使用外键约束在主表中引用它们。在下面的代码中,FKTypes 将阻止插入 ID 范围之外的任何内容。

create table Types
(
TypeId int not null primary key,
Value varchar(10) not null
)
go
insert Types(TypeId, Value) values (1, 'Buy'), (2, 'Sell'), (3, 'Short'), (4, 'Cover')
go
create table Main
(
ColData varchar(1000),
ColType int not null,
constraint FK_ColType foreign key references Types(TypeId)
)
go

我手头没有 SSMS,因此没有针对拼写错误进行测试,但如果您觉得它有用,可以尝试一下。

问候

彼得

于 2011-05-29T21:56:43.753 回答