我有2张 table 1 人(电子邮件,姓名) 2 位置(电子邮件)
现在,当我将一个人添加到人员表时,我希望数据库自动在该人员电子邮件所在的位置创建一行(我只是将其添加到人员)。
我尝试用白色的 PRIMARY KEY 和 FOREIGN KEY 但没有成功。
谢谢大家
这是我的尝试:
CREATE TABLE Persons
(
Email char(50) PRIMARY KEY,
First_Name char(50))
CREATE TABLE location
(
email char(50),
FOREIGN KEY (email) REFERENCES Persons(email)
)
但是当我将人添加到人时,它也不会添加到位置。
最佳答案
您需要触发器而不是外键来执行此操作。
FK 只是强制在 location
中没有相应记录的行不能插入 Persons
但是 email
是一个非常广泛的主键选择并且不稳定(参见 is email address a bad primary key )并且整个设计看起来很奇怪。
location
表有什么用?这是否与 Persons
存在 1:many 关系?其他列在哪里? location
的 PK 是什么?
关于java - 当另一个表添加行时自动创建表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7477405/