【问题标题】:auto creat table row when other table add row当另一个表添加行时自动创建表行
【发布时间】:2011-11-20 14:26:13
【问题描述】:

我有 2 张桌子 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)
           )

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

【问题讨论】:

    标签: java sql database


    【解决方案1】:

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

    FK 只是强制在location 中没有对应的记录就不能在Persons 中插入一行

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

    location 表有什么用?这是否与Persons 有 1:many 的关系?其他列在哪里? location的PK是什么?

    【讨论】:

    • 首先感谢我将看到有关此触发器的信息,这不是我的真实表格,仅用于示例。 :-)
    • @dan - 你使用的是什么 RDBMS? (例如 MySQL、SQL Server、Oracle...)
    • @dan Ah 如果它是我熟悉的,我会在我的答案中放一些示例触发代码,但事实并非如此!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 2014-08-10
    • 2013-07-30
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    相关资源
    最近更新 更多