【问题标题】:Why is sql showing me an error when creating a foreign key?为什么创建外键时 sql 显示错误?
【发布时间】:2015-11-10 21:05:40
【问题描述】:

我正在尝试将 Roomtype primary key 作为 foreign key 插入 Room 表,但显示以下错误

主要错误 0x80040E11,次要错误 0

CREATE TABLE Room (
   RoomID nvarchar(8),
   Capacity numeric(3),
   CONSTRAINT FK_TYPE foreign key (Roomtype) references RoomType(Roomtype)
)

Invalid column ID. [ Roomtype ]

CREATE TABLE Room (
    RoomID nvarchar(8) ,
    Capacity numeric(3),
    CONSTRAINT FK_TYPE foreign key (Roomtype) references RoomType(Roomtype)
)

create table RoomType(
    Roomtype nvarchar(2) primary key,
    Description nvarchar(20),
    Responsibility nvarchar(20)
)

【问题讨论】:

  • 能否请您格式化这个问题以便阅读?
  • 房间类型似乎不在房间表中。注意:为避免混淆,请勿使用相同名称命名表和字段。
  • 我认为你不能有一个与表同名的列尝试将列“Roomtype nvarchar(2)主键”更改为“Roomtype_id nvarchar(2)主键,”以及引用的列
  • 向我解释它是如何不可读的
  • @Steve 因此是外键

标签: sql sql-server foreign-keys primary-key


【解决方案1】:

您需要在房间表中添加房间类型列。您正在为不存在的列创建外键

create table RoomType ( Roomtype nvarchar(2) primary key,

Description nvarchar(20), Responsibility nvarchar(20)

)

CREATE TABLE Room ( RoomID nvarchar(8) , Capacity numeric(3),Roomtype nvarchar(2),

CONSTRAINT FK_TYPE foreign key (Roomtype) references RoomType(Roomtype)

)

【讨论】:

  • 会在结果中链接表格 RoomType 吗?
猜你喜欢
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
  • 2021-08-08
  • 2015-04-28
  • 1970-01-01
  • 1970-01-01
  • 2021-01-21
相关资源
最近更新 更多