我正在尝试在我的 MySQL 转换过程中为 SQL Server 中的 ENUM 数据类型找到替代方案。我知道检查约束存在,但我希望简单地创建新表来完全替换枚举对象。所以目标的要点:
Create Table Enum OrderType {
Buy = 1;
Sell = 2;
Short = 3;
Cover = 4;
}
C# 可以根据需要轻松调用这些值。有什么办法可以做到这一点?还是我必须使用支票?
我正在尝试在我的 MySQL 转换过程中为 SQL Server 中的 ENUM 数据类型找到替代方案。我知道检查约束存在,但我希望简单地创建新表来完全替换枚举对象。所以目标的要点:
Create Table Enum OrderType {
Buy = 1;
Sell = 2;
Short = 3;
Cover = 4;
}
C# 可以根据需要轻松调用这些值。有什么办法可以做到这一点?还是我必须使用支票?
您可以使用这些值创建一个表,并使用外键约束在主表中引用它们。在下面的代码中,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,因此没有针对拼写错误进行测试,但如果您觉得它有用,可以尝试一下。
问候
彼得