15 阅读2分钟

事务回滚

# 设置保存点
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;