(问题仅适用于大学项目,因为我坚持要求)
我想在SQL Server中创建2个表,例如在同一数据库中创建“ table1”和“ table2”。两者都应有一个列“ col1”,这不是主键。
那么我应该如何创建它,以便在将数据插入一个表中时,另一个表会自动更新?
注意:因此,这是针对一个大学项目的,要求我们输入特定类型的主键,因此无法进行引用,现在我必须在2个不同的表中具有相同的实体,那么以某种方式引用它们是一个好主意吗?
例如,,en员工的项目详细信息将具有其empID,而受抚养人的表也将具有empID。但是我不能将它作为主键,因为教授已经定义了它。但是更新一个也应该更新另一个,这有意义吗?
答案 0 :(得分:1)
您可以有两种类型的父子关系。
CREATE TABLE Employee
(
EmployeeId INT,
EmployeeName VARCHAR(255) NOT NULL,
PRIMARY KEY(EmployeeId)
)
GO
CREATE TABLE EmployeeProject
(
EmployeeId INT,
EmployeeName VARCHAR(255) NOT NULL,
PRIMARY KEY(EmployeeId),
FOREIGN KEY (EmployeeId) REFERENCES Employee(EmployeeId),
)
GO
CREATE TABLE Employee
(
EmployeeId INT,
EmployeeName VARCHAR(255) NOT NULL,
PRIMARY KEY(EmployeeId)
)
GO
CREATE TABLE EmployeeProject
(
EmployeeProjectId INT,
EmployeeName VARCHAR(255) NOT NULL,
EmployeeId INT NOT NULL, -- Can be NULL, if it is not mandatory
PRIMARY KEY(EmployeeProjectId),
FOREIGN KEY (EmployeeId) REFERENCES Employee(EmployeeId),
)
GO
答案 1 :(得分:0)
首先,在创建表时,将被称为外键的实体使其唯一:
表1:
[SIN] int NOT NULL UNIQUE,
第二,在另一个将[SIN]称为FK的表中,放置更新和删除的条件:
表2:
[SIN] INT CONSTRAINT [SIN_FK1] FOREIGN KEY REFERENCES Employee([SIN]) ON DELETE SET NULL ON UPDATE CASCADE
这样做,每当您更新或删除表1中的记录时,表2中的相应记录将被更新。