首页 > 解决方案 > 将新记录插入与现有表相关的表中(键和外键)

问题描述

我需要在一个表上插入记录,该表将在同一个表上具有新的主键,并将它们用于插入另一个表:

我在表 1 上有:

╔════════════════╦═══════╦═══════╦═══════╗
║ id_colum (key) ║ desc1 ║ desc2 ║ desc3 ║
╠════════════════╬═══════╬═══════╬═══════╣
║ AAAA           ║ x     ║ x     ║ x     ║
╠════════════════╬═══════╬═══════╬═══════╣
║ AAAB           ║ x     ║ x     ║ x     ║
╠════════════════╬═══════╬═══════╬═══════╣
║ AAAC           ║ x     ║ x     ║ x     ║
╠════════════════╬═══════╬═══════╬═══════╣
║ AAAD           ║ x     ║ x     ║ x     ║
╠════════════════╬═══════╬═══════╬═══════╣
║ AAAE           ║ x     ║ x     ║ X     ║
╚════════════════╩═══════╩═══════╩═══════╝

在表 2 中

╔════════════════════════╦════╦═══════╦═══════╦═══════╗
║ id_colum (foreign key) ║ id ║ desc1 ║ desc2 ║ desc3 ║
╠════════════════════════╬════╬═══════╬═══════╬═══════╣
║ AAAA                   ║ 1  ║ x     ║ x     ║ x     ║
╠════════════════════════╬════╬═══════╬═══════╬═══════╣
║ AAAA                   ║ 2  ║ x     ║ x     ║ x     ║
╠════════════════════════╬════╬═══════╬═══════╬═══════╣
║ AAAC                   ║ 3  ║ x     ║ x     ║ x     ║
╠════════════════════════╬════╬═══════╬═══════╬═══════╣
║ AAAC                   ║ 4  ║ x     ║ x     ║ x     ║
╠════════════════════════╬════╬═══════╬═══════╬═══════╣
║ AAAC                   ║ 5  ║ x     ║ x     ║ X     ║
╚════════════════════════╩════╩═══════╩═══════╩═══════╝

并且我在两个表中都有记录(50 个表 1 和 200 个表 2 以了解关系),现在,我有一个需要在两个表中插入的记录子组,所以我有表 1将生成密钥,我还需要在表 2 上添加,但使用添加到表 1 后的 id_colum。我正在尝试不同的组合,但没有得到我需要的结果。我试着做两个表的连接

SELECT *
FROM table1 t1
     LEFT JOIN table2 t2 ON t1.id_colum = t2.id_colum
WHERE t1.id_colum IN('AAAA', 'AAAB', 'AAAC');

但后来我坚持插入如何为它工作

(简而言之,我需要根据我拥有的值将新值插入表中,但保持键关系)

标签: sqlsql-server

解决方案


你可以试试:

插入表 2(id_colum,desc1,desc2,desc3)从表 1 中选择 id_colum,desc1,desc2,desc3


推荐阅读