7.4.2 添加、修改和抛弃列
数据库的表能帮助你将那些支持商业、研究或者工程过程的信息正规化。在现实世界中,需求是会发生改变的,到最后就必须对表进行修改。其中一部分修改相对而言比较琐碎,例如修改列的名称或者数据类型。而其他的修改就比较重大了,例如当某个描述性的项目(列)被忽视了,以至于一列的大小不足以包含大型数字或者字符串,或者一个数据列需要重命名或者移动到另一列中。可以使用ALTERTABLE语句来完成这些修改。
其他有关的修改发生在以下三种情况中:
·当你必须修改一列的数据类型而它已经含有了数行数据时
·当你要重命名一列而已有的SQL语句已经使用了旧有的列时
·当你转移了列的位置或者将共享同一数据类型的列连接起来时
当你需要修改一列的数据类型而该列包含了数据时,就需要制订数据迁移计划了。小型数据迁移可能要求你添加新的列、将一列的内容移动到另一列,然后将原始列抛弃。除非数据库支持在将目前的数据类型修改成新的数据类型中完成隐含的预测操作,否则你就需要使用SQL语句来明确修改数据类型,并将它们置入新的列中。
修改表中列的名称看起来是件无足轻重的事情,但当应用程序软件在SQL语句中使用了该列名称时,这就变得很重要了。对列名称所作的任何修改都会导致应用程序软件失效。你需要识别出所有依赖于它的代码,并确保在修改了表中的列的同时也对它们作了相应的修改。当表中的列被重命名且运行中的应用程序软件需要该列的支持时,就需要进行完整的复原测试。你可以首先查询ALL、DBA或者USERDEPENDENCIES视图,它们维护了有关表和存储程序单元的依赖关系。
……
展开