MySQL中的额外列,我可以删除它吗?

MySQL中的额外列,我可以删除它吗?,mysql,sql,drop-table,Mysql,Sql,Drop Table,我正在创建一个数据库,并与Mysql中的另一个表建立了1:1的连接,下面是一个屏幕截图。我的问题是,我是否可以删除在建立连接时创建的额外列(assembly factory_id)?我只想要一个(工厂id)这会弄乱我建立的连接吗?我是否应该放弃(工厂id)并让连接保持? 我是个笨蛋,谢谢 您可以使用Alter语句删除额外的列 ALTER TABLE table_name DROP COLUMN factory_id; 你也可以参考 (特别是落柱条款) 编辑: 就连接而言,Alter语句转储到临

我正在创建一个数据库,并与Mysql中的另一个表建立了1:1的连接,下面是一个屏幕截图。我的问题是,我是否可以删除在建立连接时创建的额外列(assembly factory_id)?我只想要一个(工厂id)这会弄乱我建立的连接吗?我是否应该放弃(工厂id)并让连接保持? 我是个笨蛋,谢谢


您可以使用Alter语句删除额外的列

ALTER TABLE table_name DROP COLUMN factory_id;
你也可以参考 (特别是落柱条款)

编辑:
就连接而言,Alter语句转储到临时表,然后在不丢失任何连接的情况下进行重建。请参阅本文件中的存储、性能和并发注意事项一节。我假设您的评论“但是我应该删除表吗?”实际上是指“但是我应该删除列吗?”

简短回答:如果安全的话,你应该删除该列——没有理由让它在数据库和未来开发人员的头脑中乱成一团

详细回答:如何确定它是否安全:如果1)factory_id中的值始终与assembly factory_id相同,例如,它们是彼此的重复值,以及2)没有其他表或程序代码引用assembly factory_id,则可以安全地删除assembly factory_id

但是,如果它们可能有不同的含义(不仅仅是20行左右的样本),则不能删除它。参见小提琴:

如果它们总是相同的,但数据库或代码的某些部分引用了装配厂id,则可以重构这些数据库或代码部分以引用装配厂id,然后删除装配厂id


在执行类似操作时,您应该进行测试,以验证更改后查询和程序的状态是否与更改前的状态相同。

但是我是否应该删除该表?这是我的问题因为我做了一个1对1的连接,它添加了额外的列,如果我去掉“factory_id”,那会有什么变化吗?非常感谢!这就是我需要的答案!是的,我指的是列,不是表:)