当有外键时,插入 MySQL 中的结点 table
Insert into a junction table in MySQL when there is a foreign key
我想添加 person_name
记录 FROM person
到 person_job
table 通过给这些人一个工作价值。 person_job 是我的 junction
table。我的 job_id 是作业的 id。
person table
person_id
person_name
想要的结果如下。
person_id 是来自 person
table 的外键,我想在查询中手动给出作业 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:删除外键并在填充 table 并修复参照完整性后恢复它。
选项 2:为这些人分配任意工作,然后手动更新他们的实际工作。这个任意作业可能是专门为此操作创建的虚拟作业 (INSERT INTO person_job(person_id, job_id) SELECT person_id, 999 ...
)
选项 3:如果 job_id
的定义允许,则将值 NULL
作为工作分配给这些人。
我想添加 person_name
记录 FROM person
到 person_job
table 通过给这些人一个工作价值。 person_job 是我的 junction
table。我的 job_id 是作业的 id。
person table
person_id
person_name
想要的结果如下。
person_id 是来自 person
table 的外键,我想在查询中手动给出作业 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:删除外键并在填充 table 并修复参照完整性后恢复它。
选项 2:为这些人分配任意工作,然后手动更新他们的实际工作。这个任意作业可能是专门为此操作创建的虚拟作业 (INSERT INTO person_job(person_id, job_id) SELECT person_id, 999 ...
)
选项 3:如果 job_id
的定义允许,则将值 NULL
作为工作分配给这些人。