修改表¶
要想更改表,就必须具有对该表的ALTER对象权限或者是SYSDBA角色的成员。为了达到如下目的,可以更改神通数据库中的表:
为了添加或删除列;
设置主分区或者副分区大小的增长步长、和最大值域;
为了修改数据块空间的使用参数;
为了修改存储参数, 整理表的数据到一个连续的块中;
为了修改表的日志属性;
为了添加、修改或删除与表相关的完整性约束;
为了设置推迟或者立即检查与表相关的完整性约束或触发器;
为了修改表的索引参数;
为了重命名一个表;
为了添加或修改大对象(LOB)列;
为了启用或停用统计数据采集;
为了将表移动到一个新段或表空间。
为了设置表的加锁模式
若要添加新数据行,请使用 INSERT 语句。若要删除数据行,请使用 DELETE 或 TRUNCATE TABLE 语句。若要更改现有行中的值,请使用 UPDATE 语句。
ALTER TABLE 语句指定的更改将立即实现。如果这些更改需要修改表中的行,ALTER TABLE 将更新这些行。ALTER TABLE 将获取表上的修改锁,以确保在更改期间其它连接不能引用该表(甚至不能引用其元数据)。对表进行的更改将记录于日志中,并且可以完全恢复。若更改产生的影响非常大,如涉及到表中所有行,比如除去一列或者用默认值添加 NOT NULL 列,可能需要较长时间才能完成,并会生成大量日志记录。如同影响大量行的 INSERT、UPDATE 或者 DELETE 语句一样,这一类 ALTER TABLE 语句也应小心使用
当删除约束时,作为约束的一部分而创建的索引也将删除。而通过 CREATE INDEX 创建的索引必须使用 DROP INDEX 语句来删除。
当在现有列上添加新 PRIMARY KEY 或 UNIQUE 约束时,该列中的数据必须唯一。如果存在重复值,ALTER TABLE 语句将失败。每个 PRIMARY KEY 和 UNIQUE 约束都将生成一个索引。
在神通数据库中,可以用ALTER TABLE语句来更改一个表,下面以实例说明神通数据库表的创建,具体的语法规则请参考《神通数据库 SQL语言参考手册》。
下例添加一个允许空值的列,而且没有通过 DEFAULT 定义提供值。各行的新列中的值将为 NULL。
CREATE TABLE project_a ( column_a INT);
ALTER TABLE project_a ADD column_b VARCHAR(20) NULL;