我试图在MySQL转换过程中为SQL Server中的ENUM数据类型找到替代方法。我知道检查约束存在,但我希望简单地创建新表以完全替换枚举对象。所以目标的要点是:
Create Table Enum OrderType {
Buy = 1;
Sell = 2;
Short = 3;
Cover = 4;
}
C#可以根据需要轻松调用这些值。有什么办法吗?或者我必须使用支票吗?
答案 0 :(得分: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,所以这不是针对打字错误的测试,但是如果你发现它有用,你可以尝试一下。
此致
·彼得