当有外键时插入MySQL中的联结表

时间:2015-01-01 22:17:09

标签: mysql sql

我想通过为这些人提供工作价值,将person_name记录从person添加到person_job表。 person_job是我的junction表。我的job_id是工作的身份。

person table

为person_id

PERSON_NAME

所需结果如下。

person_id是来自person表的外键,我想手动给出查询中的作业ID,因为我使用phpMyAdmin,这很容易。

person_job table (junction table from person and job tables.)

为person_id

JOB_ID

我已尝试过以下查询,但我无法使用它添加ID值。我应该把id值放在哪里?

INSERT INTO person_job(person_id)
          SELECT person_id
          FROM person
          WHERE person_id < 1500;

1 个答案:

答案 0 :(得分:1)

选项1:在填充表格并修复参照完整性后,删除外键并恢复它。

选项2:为这些人分配任意作业,然后手动更新他们的实际工作。这个任意作业可以是为此操作创建的虚拟作业(INSERT INTO person_job(person_id, job_id) SELECT person_id, 999 ...

选项3:如果NULL的定义允许,则将值job_id作为工作分配给这些人。