的PostgreSQL
所以我在table1中插入一行,该行包含一个字段,该字段是table2中的一个字段。所以我想创建一个函数,当我在table1中插入一行时,它将在table2中插入一行。 例如: 我有两张桌子
table1
....
....
....
table2
....
....
....
我在table1中插入 插入table1值(" Sam"," USA"); 因此我想拥有
table1
Sam Usa
...
...
...
table2
Usa ...
...
...
那么我应该写什么功能以及触发什么?此外,如果table2中有一行有一个字段USA,则此函数不应再向USA插入一行
很抱歉,如果我将其解释为复杂的
答案 0 :(得分:0)
就像@Jorge Campos在评论中提到的那样,重复数据通常是个坏主意。
但是,如果您确实需要执行此操作,则需要在源表上创建触发器并使用现有检查在目标表中插入数据。以下是SQL Server中的示例:
CREATE TABLE Tbl1(
Id INT NOT NULL IDENTITY PRIMARY KEY,
Name NVARCHAR(100) NOT NULL
)
GO
CREATE TABLE Tbl2(
Id INT NOT NULL IDENTITY PRIMARY KEY,
Name NVARCHAR(100) NOT NULL
)
GO
CREATE TRIGGER Sync ON Tbl1 AFTER INSERT AS
INSERT INTO Tbl2 (Name)
SELECT src.Name FROM inserted src
LEFT JOIN Tbl2 dst ON src.Name = dst.Name
WHERE dst.Id IS NULL
GO
INSERT INTO Tbl1 (Name) VALUES ('STR')
SELECT * FROM Tbl2