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

标签 java sql database

我有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/

相关文章:

java - 将 Groupwise/Novell 帐户与 java 应用程序同步

sql - Rails 内部连接在结果中省略了一列

mysql - SQL 不喜欢返回所有行而不是差异

mysql - 帮助初学者了解 MySQL 文档字节定义

java - Eclipse 4.x (Mars) 多页表单

java - 为什么在ArrayList的构造中需要将类型转换为Object数组?

java - Instagram 主题标签搜索查询出现 'filenotfound' 异常

java - 无法找出 JDBC ClassNotFoundException(JTDS 驱动程序)

mysql - 如何才能不删除表格中的最后一项?

c# - Persist Security Info Property=true 和 Persist Security Info Property=false