当前位置: 首页 > 工具软件 > SQL Tabs > 使用案例 >

SQLite语法 ATTACH DATABASE

严阳成
2023-12-01

SQLite的SQL语法

[目录]

ATTACH DATABASE


sql-statement ::=ATTACH [DATABASE] database-filename AS database-name

ATTACH DATABASE语句将一个已存在的数据库添加到当前数据库连接。若文件名含标点符号,则应用引号引起来。 数据库名’main’和’temp’代表主数据库和用于存放临时表的数据库,它们不能被拆分。拆分数据库使用 DETACH DATABASE语句。


你可以读写附加数据库,或改变其结构。这是SQLite3.0提供的新特性。在SQLite 2.8中,改变附加数据库的结构是不允许的。


在附加数据库中添加一个与已有表同名的表是不允许的。但你可以附加带有与主数据库中的表同名的表的数据库。也可以多次附加同一数据库。


使用database-name.table-name来引用附加数据库中的表。若附加数据库中的表与主数据库的表不重名,则不需加数据库名作为前缀。当数据库被附加时,它的所有不重名的表成为该名字指向的缺省表。之后附加的任意与之同名的表需要加前缀。若“缺省”表被拆分, 则最后附加的同名表变为“缺省”表。


若主数据库不是":memory:",多附加数据库的事务是原子的。若主数据库是":memory:"则事务在每个独立文件中依然是原子的。 但若主机在改变两个或更多数据库的COMMIT语句进行时崩溃,则可能一部分文件被改变而其他的保持原样。附加数据库的原子性的提交 是SQLite 3.0的新特性。在SQLite 2.8中,所有附加数据库的提交类似于主数据库是":memory:"时的情况。


对附加数据库的数目有编译时的限制,最多10个附加数据库。

 
 类似资料: