改
事务回滚
# 设置保存点
savepoint savepoint_name;
# 回滚到指定保存点
rollback to savepoint_name;
重命名表
rename old_name TO new_name;
锁定表
LOCK TABLE tables IN lock_mode MODE [ WAIT [, integer] | NOWAIT ];
# 下面是一个如何在 Oracle 中使用 LOCK TABLE 语句的例子
LOCK TABLE suppliers IN SHARE MODE NOWAIT;
# 这个例子会锁定 suppliers 表在共享模式,而不是等待锁定被释放
- tables:用逗号分隔的表格列表
- WAIT:它指定数据库将等待(达到指定整数的特定秒数)以获取 DML 锁定。
- NOWAIT:它指定数据库不应该等待释放锁。
lock_mode
lock_mode | 描述 |
---|---|
ROW SHARE | 允许同时访问表,但阻止用户锁定整个表以进行独占访问。 |
ROW EXCLUSIVE | 允许对表进行并发访问,但阻止用户以独占访问方式锁定整个表并以共享方式锁定表。 |
SHARE UPDATE | 允许同时访问表,但阻止用户锁定整个表以进行独占访问。 |
SHARE | 允许并发查询,但用户无法更新锁定的表。 |
SHARE ROW EXCLUSIVE | 用户可以查看表中的记录,但是无法更新表或锁定SHARE 表中的表。 |
EXCLUSIVE | 允许查询锁定的表格,但不能进行其他活动。 |
列 (字段)
ALTER TABLE 表名 MODIFY (列名 数据类型[DEFAULT 默认值] [,列名 数据类型]...);
# 添加默认值示例
ALTER TABLE dossier MODIFY(sex DEFAULT ‘男’);
列名 (字段名)
ALTER TABLE 表名 RENAME COLUMN 原有列名 TO 新列名
序列
ALTER SEQUENCE [schema.]sequencename
[INCREMENT BY n]
[MAXVALUE n | NOMAXVALUE]
[MINVALUE n | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE n | NOCACHE];
# 修改序列的语法没有start with语句
约束
# 禁用
ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;
# 启用
ALTER TABLE table_name ENABLE CONSTRAINT constraint_name;
修改数据
按照指定条件修改表中的某些行的列数据。
UPDATE 表名
SET column = value [, column = value]
[WHERE condition];
# 示例:
update emp
set sal=8888
where empno=7788;