MSSQL将行插入到关系表中。

野山羊

我有两张桌子。PersonPhones许多电话号码可以通过外键与一个人关联。如果我想添加一个电话号码并将其映射到特定的人,我的SQL应该是什么样?

据我了解:

  1. SQL语句应该是事务性的,因此首先我必须在Person表中插入一个人,然后在插入电话号码Phones并将其与Person表中刚刚插入的行对应起来

  2. 如果另一表中已经存在行怎么办?我应该如何处理?

我正在寻找一个干净和简单的解决方案或sql示例。

注意:我无权创建存储过程。

大卫

如果您要插入带有newPerson的新Phone字符,那么您将

  1. 插入Person表格。
  2. LAST_INSERT_ID()得到它只是对插入生成的ID。
  3. 使用该ID将记录插入Phone表中。

如果您要Phone为现有插入新Person,则您会

  1. Person如果没有ID,请选择以获得其ID

  2. 使用该ID将记录插入Phone表中。

    如果另一表中已经存在行怎么办?我应该如何处理?

在此上下文中定义“已经存在”。什么定义了数据的唯一性?在这种情况下,您可能需要考虑将该唯一性定义合并到该表的主键中。(可以由不止一列组成。)否则,您将不得不SELECT从表中查看该行是否已经存在。如果是这样,请对其进行更新。如果没有,插入它。(或者,但是,您想在逻辑上处理您域中已经存在的数据。)

请记住,在这种情况下,很容易过于独特。例如,您可能很想尝试在这些表之间创建多对多关系,以便避免重复的电话号码。在现实世界中,这最终不是一个好主意,因为可能:

  1. 两个人共享相同的电话号码。
  2. 这两个人中的一个改变了他/她的号码,但另一个没有改变。

在过度规范的情况下,上述事件将导致以下情况之一:

  1. 当两个用户的电话号码中只有一个实际更新时,这两个用户的电话号码都会更新,从而导致另一用户的数据不正确。
  2. 您必须编写过于复杂的代码来检查这种情况并创建新记录(取消先前的多对多关系),从而导致大量不必要的代码和故障点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将行插入到Postgresql表中

来自分类Dev

如何使用 C# 将数据插入到 MSSQL 表中

来自分类Dev

将行插入到现有表中

来自分类Dev

使用关系标识符将变量插入到单独的表中

来自分类Dev

C#-将包含关系数据表的数据集插入到SQL Server中

来自分类Dev

在触发器内部,将原始表中的 n 行插入到新表中

来自分类Dev

将记录插入到Cassandra表中

来自分类Dev

将数据插入到magento表中

来自分类Dev

无法将列名从插入到表中

来自分类Dev

是否可以将本地表中的行插入到Postgresql中的远程表中?

来自分类Dev

通过 .csv 中的 PyMySql 将大量数据行插入到 cloudsql 表中

来自分类Dev

将数据插入具有多对多关系的表中

来自分类Dev

如何使用MSSQL将行“乘”到另一个表中的每一行

来自分类Dev

根据条件将行插入表中

来自分类Dev

仅当总数小于阈值时,才将行插入到SQL Server表中

来自分类Dev

UDF将文本字符串插入到表的每一行中

来自分类Dev

SQL Server:将行复制并插入到同一表中,但具有不同的ID

来自分类Dev

如何将行插入到另一个工作表的列中?

来自分类Dev

将一行数据插入到表的多行中

来自分类Dev

SQL Server:将行复制并插入到同一表中,但具有不同的ID

来自分类Dev

使用日期字段将新行插入到oracle sql表中

来自分类Dev

Perl / DBI-将行从Postgres插入到Oracle表中

来自分类Dev

仅当总数小于阈值时,才将行插入到SQL Server表中

来自分类Dev

动态地将json数据行插入到现有表中

来自分类Dev

将多个输入值作为不同的行插入到不同的表中

来自分类Dev

Laravel 注册:将两行插入到单独的表中

来自分类Dev

将数据行从C#中的另一个sql表插入到sql表中

来自分类Dev

如何使用 SQL TRIGGER 将另一个表中的行插入到新表中?

来自分类Dev

将一个表中的行插入到另一个表中,但仅插入没有重复的行

Related 相关文章

  1. 1

    将行插入到Postgresql表中

  2. 2

    如何使用 C# 将数据插入到 MSSQL 表中

  3. 3

    将行插入到现有表中

  4. 4

    使用关系标识符将变量插入到单独的表中

  5. 5

    C#-将包含关系数据表的数据集插入到SQL Server中

  6. 6

    在触发器内部,将原始表中的 n 行插入到新表中

  7. 7

    将记录插入到Cassandra表中

  8. 8

    将数据插入到magento表中

  9. 9

    无法将列名从插入到表中

  10. 10

    是否可以将本地表中的行插入到Postgresql中的远程表中?

  11. 11

    通过 .csv 中的 PyMySql 将大量数据行插入到 cloudsql 表中

  12. 12

    将数据插入具有多对多关系的表中

  13. 13

    如何使用MSSQL将行“乘”到另一个表中的每一行

  14. 14

    根据条件将行插入表中

  15. 15

    仅当总数小于阈值时,才将行插入到SQL Server表中

  16. 16

    UDF将文本字符串插入到表的每一行中

  17. 17

    SQL Server:将行复制并插入到同一表中,但具有不同的ID

  18. 18

    如何将行插入到另一个工作表的列中?

  19. 19

    将一行数据插入到表的多行中

  20. 20

    SQL Server:将行复制并插入到同一表中,但具有不同的ID

  21. 21

    使用日期字段将新行插入到oracle sql表中

  22. 22

    Perl / DBI-将行从Postgres插入到Oracle表中

  23. 23

    仅当总数小于阈值时,才将行插入到SQL Server表中

  24. 24

    动态地将json数据行插入到现有表中

  25. 25

    将多个输入值作为不同的行插入到不同的表中

  26. 26

    Laravel 注册:将两行插入到单独的表中

  27. 27

    将数据行从C#中的另一个sql表插入到sql表中

  28. 28

    如何使用 SQL TRIGGER 将另一个表中的行插入到新表中?

  29. 29

    将一个表中的行插入到另一个表中,但仅插入没有重复的行

热门标签

归档