不吃猫的老鼠不是好猫 2013-10-23 05:09 采纳率: 0%
浏览 1253

sql server没有枚举类型,要把mysql的枚举转换过来,可以怎么做?

sql server没有枚举类型,要把mysql的枚举转换过来,可以怎么做?

type enum('0','1') NOT NULL DEFAULT '0' COMMENT '1:直辖市',

  • 写回答

1条回答

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-27 11:49
    关注

    该回复引自免费微信小程序-皆我百晓生:


    在SQL Server中,可以使用以下两种方法来模拟MySQL的枚举类型:

    1. 使用CHECK约束:可以在SQL Server中创建一个列,并使用CHECK约束来限制该列的值只能是指定的枚举值之一。例如,可以创建一个名为"city_type"的列,并使用CHECK约束来限制其值只能是'0'或'1':
    CREATE TABLE your_table (
        city_type CHAR(1) NOT NULL DEFAULT '0' CHECK (city_type IN ('0', '1'))
    );
    
    1. 使用辅助表:可以创建一个辅助表来存储枚举值,并在主表中使用外键关联。例如,可以创建一个名为"city_types"的表来存储枚举值,并在主表中创建一个外键关联到该表:
    CREATE TABLE city_types (
        id INT PRIMARY KEY,
        name VARCHAR(50)
    );
    
    INSERT INTO city_types (id, name) VALUES (0, '直辖市');
    INSERT INTO city_types (id, name) VALUES (1, '非直辖市');
    
    CREATE TABLE your_table (
        id INT PRIMARY KEY,
        city_type_id INT,
        FOREIGN KEY (city_type_id) REFERENCES city_types(id)
    );
    

    这样,你可以在"your_table"表中使用"city_type_id"列来表示枚举值,通过外键关联到"city_types"表中的相应枚举值。

    无论使用哪种方法,都可以实现类似于MySQL的枚举类型的功能。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料