首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入与PK andFK

插入与PK andFK
EN

Database Administration用户
提问于 2018-03-12 09:30:56
回答 1查看 249关注 0票数 1

我有以下问题:

我创建了两个表:

代码语言:javascript
复制
CREATE TABLE DimServers 
(
    [ID_DimServer] INT NOT NULL IDENTITY(1,1) PRIMARY KEY ,
    [ServerName] VARCHAR(13) NOT NULL,
    [Domain] VARCHAR(10) NOT NULL,
    [PIT] VARCHAR(4),
    [PhysicalMemoryMB] INT,
    [AvailablePhysicalMemoryMB] INT,
    [MemoryInUseMB] INT,
    [CPU] INT,
    [HyperthreadRatio] INT,
    [SystemUpTime] VARCHAR(50),
    [WindowsVersion] VARCHAR(50) NOT NULL
)

CREATE TABLE DimDrives 
(
    [ID_DimDrive] INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    [DimServer_ID] INT FOREIGN KEY REFERENCES DimServers(ID_DimServer),
    [Drive] VARCHAR(1) NOT NULL)
)

在此之后,我使用来自另一个服务器的数据执行INSert:

代码语言:javascript
复制
INSERT INTO DimServers 
(
    [ServerName],
    [Domain],
    [PIT],
    [PhysicalMemoryMB],
    [AvailablePhysicalMemoryMB],
    [MemoryInUseMB],
    [CPU],
    [HyperthreadRatio],
    [SystemUpTime],
    [WindowsVersion]
)
SELECT
     sq.[ComputerNamePhysicalNetBIOS],
     sq.[Domain],
     sq.[PIT],
     sq.[TotalPhysicalMemoryMB],
     sq.[AvailPhysicalMemoryMB],
     sq.[MemInUseMB],
     sq.[cpu_count],
     sq.[hyperthread_ratio],
     sq.[SystemUpTime],
     sq.[WindowsVersion]
FROM [x].[y].[dbo].[sqlsysinfo] as sq

现在我不知道怎么做,如果它有外键的话。

EN

回答 1

Database Administration用户

发布于 2018-03-12 10:18:23

由于DimServers似乎不引用任何其他表,因此在该表中插入行不会有任何问题。

但是,DimDrives有一个对DimServers的外键引用。在DimDrives中插入任何行时,DimServer_ID列中的值必须存在于DimServers表的列ID_DimServer中。

如果试图在DimDrives表中插入DimServer_ID的列值在列ID_DimServer中的DimServers表中不存在的行,则会得到一个外键冲突错误

代码语言:javascript
复制
The INSERT statement conflicted with the FOREIGN KEY constraint
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/199969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档