当另一个表添加行时自动创建表行

时间:2011-09-19 21:17:31

标签: java sql database

我有2张桌子 1人(电子邮件,姓名) 2位置(电子邮件)

现在,当我向人员表中添加一个人时,我希望数据库自动创建一个位于人员电子邮件位置的行(我只是添加给人员)。

我尝试做白色PRIMARY KEY,以及FOREIGN KEY但没有succses。

谢谢大家。

这是我尝试的:

       CREATE TABLE Persons
        (
       Email char(50) PRIMARY KEY,

           First_Name char(50))  



      CREATE TABLE location
         (
         email char(50),
         FOREIGN KEY (email) REFERENCES Persons(email)
           )

但是当我添加到人员时,它也没有添加到位置。

1 个答案:

答案 0 :(得分:3)

您需要触发器来执行此操作而不是外键。

FK只强制在location中没有相应记录的情况下无法插入行Persons

但是email对于主键和不稳定来说是一个非常广泛的选择(参见is email address a bad primary key),整个设计看起来很奇怪。

location表是什么?这与Persons有1:多的关系吗?其他栏目在哪里?什么是location的PK?