外键引用无效表

时间:2013-11-20 21:14:47

标签: sql

我有以下代码:

create table test.dbo.Users
(
    Id int identity(1,1) primary key,
    Name varchar(36) not null
)

create table test.dbo.Number
(
    Id int identity(1,1) primary key,
    Number varchar(10) not null,
    Name varchar(36) not null foreign key references Users.Name
)

外键引发错误Foreign key 'FK__Number__Name__1CF15040' references invalid table 'Users.Name'.

我做错了什么?

6 个答案:

答案 0 :(得分:5)

请参阅此SQLfiddle链接Link

CREATE TABLE NUMBER(
    ID INT PRIMARY KEY, 
    NUMBER VARCHAR(10) NOT NULL,
    NAME VARCHAR(36) NOT NULL REFERENCES USERS(NAME)
);

答案 1 :(得分:2)

外键必须引用另一个表中的主键

我会使用以下代码

我希望它有用

use test
create table test.dbo.Users
(
    Id int identity(1,1) primary key,
    Name varchar(36) not null
)

create table test.dbo.Number
(
    Id int identity(1,1) primary key,
    Number varchar(10) not null,
    Users_Id int not null

    constraint fk_Number_Users foreign key (Users_Id) 
               references Users(Id)
               on update no action
               on delete no action
)

答案 2 :(得分:1)

对于那些100%肯定表存在的人,就像我一样,请务必检查web.config。我在那里有一个拼写错误,它给出了这个错误,如果你问我,这是违反直觉的,但事实就是如此。

答案 3 :(得分:0)

您应该引用test.dbo.users的主键。

在SQL Server中,您可以这样做:

create table Number
(
    Id int identity(1,1) primary key,
    Number varchar(10) not null,
    Name varchar(36) not null ,
    Id_FK int not null foreign key references Users(id)
)

在上面,您有两个表之间的强制关联。如果您想拥有可选关系,请从Id_Fk中删除“not null”....

注意:我不知道名称列是什么。

答案 4 :(得分:0)

如果您正在运行一堆脚本来创建表,那么可能有必要确保引用的表脚本在使用者表之前运行。

答案 5 :(得分:-1)

GET http://localhost:8080/rest/s1/mantle/facilities/
Accept: application/application/json
Authorization: Basic am9obi5kb2U6bW9xdWk=

[
  {
    "facilityId": "ZIRET_WH",
    "pseudoId": "ZIRET_WH",
    "facilityTypeEnumId": "FcTpWarehouse",
    "ownerPartyId": "ORG_ZIZI_RETAIL",
    "facilityName": "Ziziwork Retail Warehouse",
    "assetAllowIssueOverQoh": "Y",
    "lastUpdatedStamp": 1550661258932
  }
]

,然后创建表。 为我工作。