【问题标题】:query to create a subtype with no unique parameters查询以创建没有唯一参数的子类型
【发布时间】:2012-06-08 09:15:47
【问题描述】:

假设我有一个名为 Box 的超类型实体和三个子类型 BlackBox、WhiteBox、GrayBox。 Blackbox 和 WhiteBox 没有自己的参数。在我的关系图中,Box 将 BoxCode 作为主键,BlackBox 将 BLBoxCode 作为其 pk。

如何在 MS SQL 中为 BlackBox 创建表?请帮忙。

谢谢。

【问题讨论】:

    标签: sql-server relational-database create-table subtype


    【解决方案1】:

    同一列应该是直接超类型的主键和外键。

    CREATE TABLE BlackBox
    (
        box_id int NOT NULL PRIMARY KEY REFERENCES Box (box_id),
        ...
    )
    

    【讨论】:

    • 这个查询好吗? CREATE TABLE BlackBox_T (BlackBoxCode int not null, CONSTRAINT BlackBox_PK PRIMARY KEY (BoxCode), CONSTRAINT BlackBox_FK FOREIGN KEY (BlackBoxCode) REFERENCES Box_T (BoxCode))
    • @user1440230 - 是的,您可以通过为所有约束指定特定名称获得额外积分。这使得以后更改它们变得更加容易。
    • 如何让以后更容易修改它们?我是新手,所以请原谅我的新手疑虑。
    • @user1440230 - 如果你没有给约束命名(就像我的简单语法一样),SQL Server 将生成一个名称,该名称将以随机分配的字母结尾(每个名称都可能不同)应用脚本的框)。除非您只管理全世界的单个数据库(甚至不是测试数据库),否则当您需要自动对约束进行一些修改时,稍后检测名称是一项非常繁琐的工作。
    猜你喜欢
    • 1970-01-01
    • 2020-01-12
    • 2014-05-10
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多