sql - 将新记录插入与现有表相关的表中(键和外键)
问题描述
我需要在一个表上插入记录,该表将在同一个表上具有新的主键,并将它们用于插入另一个表:
我在表 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');
但后来我坚持插入如何为它工作
(简而言之,我需要根据我拥有的值将新值插入表中,但保持键关系)
解决方案
你可以试试:
插入表 2(id_colum,desc1,desc2,desc3)从表 1 中选择 id_colum,desc1,desc2,desc3
推荐阅读
- c++ - 为什么从 lower_bound 中减去一个数组会返回一个取消引用的值?
- java - 如何使用 Java Google Classroom API 获取 CourseWork 课程?
- postgresql - 使用带有 jooq 的子查询更新 postgres 中的表行
- design-patterns - 删除具有 puppet 资源的文件 tidy
- python - 为什么我的十六进制字符串的行为不像字符串?
- reactjs - React / Context API / TypeScript:如何初始化 Web 应用程序并避免 UI 在启动时闪烁?
- puppeteer - 如何在克隆的存储库上更新 Chromium 版本?
- statistics - 在 R Lavaan 中查找模型的人口统计数据
- python - 使用 SQLAlchemy 创建表作为选择?
- azure-devops - 为什么在尝试运行 JMeter 时出现“意外的属性 rootFolderOrFile”?