欢迎光临散文网 会员登陆 & 注册

Firebird Cookbook 3:表管理

2022-02-04 21:07 作者:CSDN首席喷子  | 我要投稿

Firebird没有如同MySQL那样的表克隆能力,如果想要创建一个元信息一致的表,只能直接复制DDL。此外,Firebird也不支持客户端在会话中创建临时表。但是,Firebird提供了全局临时表功能。

4.1  全局临时表

全局临时表的元信息是持久化的,而数据则可以局限于当前事务或连接:

CREATE GLOBAL TEMPORARY TABLE GTT_STUDENTS (...) ON COMMIT DELETE / PRESEVE ROWS;

DELETE和PRESERVE分别对应事务临时表和连接临时表。全局临时表绝大部分特性和普通表是一样的,除了:

(1)临时表和普通表不能互相引用。

(2)临时表之间只能引用同类型的表(事务引用事务,连接引用连接)。

(3)临时表在生命终止、销毁数据的时候不会触发BEFORE/AFTER型触发器。

4.2  存储查询数据

可以在INSERT中使用SELECT子语句来实现:

INSERT INTO STUDENTS (SID, SNAME) SELECT SID, SNAME FROM TEMP;

4.3  备份

bin目录下的gbak工具可以提供数据备份功能。

#  创建备份

gbak /path/to/db/SOME.FDB /path/to/backup/BACKUP.BAK -USER user_name -PAS pwd

 

#  恢复数据

gbak /path/to/backup/BACKUP.BAK /path/to/db/RESTORE.FDB -C -USER user_name -PAS pwd

其它一些开关包括:

(1)-M:只备份、恢复元信息

(2)-NOD:恢复数据过程中不调用触发器

(3)-REP:覆盖已经存在的文件


Firebird Cookbook 3:表管理的评论 (共 条)

分享到微博请遵守国家法律