我正在使用MySQL。我的问题是如何自动将新添加的行插入外键表中。一个例子可以澄清我的问题:
我有两个表“员工”和“薪水”:
CREATE TABLE Employee(
emp_id int NOT NULL AUTO_INCREMENT,
name char(30),
PRIMARY KEY (emp_id)
) ENGINE=innoDB;
CREATE TABLE salary {
sal_id int NOT NULL AUTO_INCREMENT
salary_figure int,
emp_id int,
PRIMARY KEY (sal_id),
FOREIGN KEY REFERENCES Employee(emp_id)
}
这是连接表:
employee_salary_join Table {
int sal_id,
int emp_id
}
上面的连接表没有任何外键关系。
现在,当我将员工插入员工表时
INSERT into Employee values ("john")
执行此语句后,将在 Employee 表中创建一行,该行具有由数据库引擎分配的 pk。
现在,当我在工资表中插入员工 John 的一行时,如下所示:
INSERT into SALARY values ("30000", ?????)
如何获取上面约翰刚刚插入的行的员工 ID 并将其放在此处的位置?????
最后,我有一个连接表,每次在工资表中添加一行时,我都想要连接表中的相应条目。这可以通过触发器来完成,但我不完全清楚如何设置它,因为我需要两者的参考emp_id
and sal_id
对于连接表行。
我还想知道处理问题时的最佳做法外键插入。我正在使用 JDBC/mysql 驱动程序。我想这应该不会影响我们在sql语句中处理上述内容的方式。