Mysql 在SQL中向现有表中添加超过600万条记录的额外列

Mysql 在SQL中向现有表中添加超过600万条记录的额外列,mysql,sql,sql-update,Mysql,Sql,Sql Update,使用SQL 我想在现有表中插入一个新列,该列将从其他两列派生其值,特别是where值(Desk+Field)。该表已包含600万条记录 有人能告诉我怎么做吗?这样做会引入冗余,因为已经存储了相同的数据。这两个字段的连接是否应该在您的业务逻辑中而不是数据库中发生?正确,但我需要它,这样我就不会对5个字段进行连接。(桌面+字段)只是一个例子。使用TVP,我将对单个字段进行连接,您对5列进行连接并添加索引不是更好吗?通过以这种方式添加字段,您将取消数据库状态的规范化。我很感激添加索引会增加添加新记录等

使用SQL

我想在现有表中插入一个新列,该列将从其他两列派生其值,特别是where值(Desk+Field)。该表已包含600万条记录


有人能告诉我怎么做吗?

这样做会引入冗余,因为已经存储了相同的数据。这两个字段的连接是否应该在您的业务逻辑中而不是数据库中发生?

正确,但我需要它,这样我就不会对5个字段进行连接。(桌面+字段)只是一个例子。使用TVP,我将对单个字段进行连接,您对5列进行连接并添加索引不是更好吗?通过以这种方式添加字段,您将取消数据库状态的规范化。我很感激添加索引会增加添加新记录等的负担,但这只是一个你必须权衡的权衡。否则,如果一段时间后,您有一个需求,您决定需要将三个字段的值合并到一个新列中,会发生什么情况?您的数据变得更加难以管理,因为您必须在多个位置维护它。我正在寻找我上面提到的设计。谢谢你的建议。如果你确信你需要走这条路,那么——根据这里的MySQL文档:你不能有一个计算出的默认值,因此解决方案可能必须遵循:1。添加列(使其可为空),2。创建一个触发器以设置插入时列的值(并在必要时更新),3。编写一个查询来执行插入操作,以填充所有当前记录的新列。这将使您处于所有当前和后续记录都将设置值的位置。您对“两列特别是where值”的确切含义是什么?你说的是什么样的
情况?书桌栏和字段栏。新列应具有AGY格式的值。LT_Strat#Submit_bmkPricingInput什么是“桌面列”?更让人困惑的是“字段栏”?图像清楚地表明,Desk是一个列名,字段也是。如果你愿意的话,我将非常高兴能更清楚地回答这个问题。谢谢