sql - 带有空外部表的 SQL INSERT INTO
问题描述
我有一个包含 3 个值的表和一个外部表。
Tbl_Person
ID int PRIMARY KEY IDENTITY(1,1)
CarID int REFERENCES Tbl_Car(ID)
Name nvarchar(20)
Tbl_Car
ID int PRIMARY KEY IDENTITY(1,1)
Color nvarchar(30)
我现在想Person
用一个新的Car
而不关心Car
表来创建一个新的,有点像这样:
INSERT INTO Tbl_Person (Car, Name)
VALUES ('dont know what goes here', 'Timmy')
我不确定要在Car
列中放什么,因为我只是希望它存在但还不关心它的值。
我确信它很容易在网上找到,但我不知道如何用谷歌搜索这个特殊问题。
解决方案
您可以更改逻辑模型以非规范化“CarID”(将其从“Persons”表中删除)并创建一个新表来存储名为“Person_Cars”的人的汽车。这样可以避免NULL
在汽车未知时将值插入模型。根据应用的表约束,它还可以允许人拥有超过 1 辆车。此外,不需要在表前加上“tbl_”。此外,Persons 和 Cars 似乎都可能受益于对NVARCHAR
列的唯一约束。
人
ID int not null PRIMARY KEY IDENTITY(1,1)
Name nvarchar(20) unique not null
汽车
ID int not null PRIMARY KEY IDENTITY(1,1)
Car nvarchar(30) unique not null
人_汽车
ID int not null PRIMARY KEY IDENTITY(1,1)
PersonID int not null REFERENCES Persons(ID)
CarID int not null REFERENCES Cars(ID)
推荐阅读
- class - Wagtail Pages 属于哪一类?
- javascript - 如何解决 ReactNative 反应导航中的错误?
- php - 来自sql的textarea中的var?
- algorithm - 如何强制 Gurobi 使用预求解阶段?
- c++ - 如何避免 C 库中的函数名冲突?
- backbone.js - 以入职年份为参数,创建自定义方法获取员工模型的体验
- pine-script - 如何只触发一个条目?
- android - Kotlin:createDisableExceptionQarthFile 方法失败
- sql - Windows Powershell GetString 过载问题
- python - 如何手动关闭 chrome 并自动执行 .quit()