我现在正在尝试创建两个相互交互的SQL表,并且已经搜索了很长一段时间的答案。对正确方向的一点点推动将受到高度赞赏。
就我而言,我有一张表Company
,其中包含以下CREATE
声明:
CREATE TABLE Company
(CNr INTEGER NOT NULL,
Name VARCHAR(128) NOT NULL,
Manager VARCHAR(128) NOT NULL,
Area VARCHAR(128) NOT NULL,
PRIMARY KEY (FNr));
正在创建的表Employee
:
CREATE TABLE Employee
(Name VARCHAR (128) NOT NULL,
Age INTEGER NOT NULL,
Company INTEGER NOT NULL,
PRIMARY KEY (Name));
现在我想为Company
创建一种检查方式,如果Employee
中只有一名员工,如果是这样,那么该员工将成为Company
中的经理
我正在尝试SELECT CASE
,但我不确定我的解决方案:
SELECT CASE
WHEN (1 = SELECT COUNT(*) FROM Employee WHERE Company = CNr)
THEN Manager = (SELECT Name FROM Manager WHERE Company = CNr);
ELSE Manager = new.Manager;
END
感谢您的帮助!
答案 0 :(得分:0)
如评论中所述,您不会使用约束来更新数据。您可以使用以下代码检查employee表中是否存在1名员工,如果他员工,则将其姓名放在表Manager
的{{1}}列中的所有行中。
Company
如果您只想更新表CASE WHEN (SELECT COUNT(1) FROM Employee LIMIT 2) = 1 THEN
(UPDATE Company SET manager = (SELECT Name FROM Employee))
END
的某些行,那么请包含Company
子句,条件是您要决定更新哪些行:
WHERE ...
(用条件替换......)
如果有帮助,请告诉我。