不吃猫的老鼠不是好猫 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的枚举类型的功能。

    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?