我有一个正在创建的数据库,我与 Mysql 中的另一个表建立了一对一的连接,下面是一个屏幕截图。我的问题是我可以删除建立连接时创建的额外列(装配工厂 ID)吗?我只想要一个(factory_id)这会弄乱我建立的连接吗?我应该放弃(factory_id)并让连接保持不变吗?我是菜鸟,谢谢!
2 回答
您可以使用 Alter 语句删除额外的列。
ALTER TABLE table_name DROP COLUMN factory_id;
也可以参考http://docs.oracle.com/cd/E18283_01/server.112/e17118/statements_3001.htm#i2103683 (特别是Drop column条款)
编辑:就连接而言,Alter 语句转储到临时表,然后在不丢失任何连接的情况下重建。请参阅本文档中的存储、性能和并发注意事项部分
我假设您的评论“但我应该放下桌子吗?” 真正的意思是说“但我应该放弃专栏吗?”。
简短的回答:如果它是安全的,您应该删除该列 - 没有理由让它混淆数据库和未来开发人员的思想。
长答案:如何确定它是否安全:如果 1)factory_id 中的值是并且总是与程序集 factory_id 相同,例如,它们是彼此的重复值,并且 2)没有其他表或程序代码引用程序集factory_id,您可以安全地删除程序集 factory_id。
但是,如果它们有任何可能意味着不同的东西(不仅仅是 20 行左右的样本),你就不能删除它。见小提琴:http ://sqlfiddle.com/#!9/0bf17/1
如果它们始终相同,但部分数据库或代码引用了程序集 factory_id,则可以重构这些数据库或代码部分以引用 factory_id,然后删除程序集 factory_id。
在执行此类操作时,您应该进行测试以验证更改后查询和程序的状态是否与更改前的状态相同。