以下代码创建两个数据库:
import sqlite3
db = 'brazil'
conn = sqlite3.connect(db+'.db')
c = conn.cursor()
qCreate = """
CREATE TABLE states
(zip_id numeric NOT NULL,
state_name text NOT NULL,
CONSTRAINT pk_brazil
PRIMARY KEY (zip_id) """
c.execute(qCreate)
conn.commit()
conn.close()
db = 'city'
conn = sqlite3.connect(db+'.db')
c = conn.cursor()
qCreate = """CREATE TABLE rio_de_janeiro
(zip_id numeric NOT NULL,
beach_name text NOT NULL,
CONSTRAINT pk_rio
PRIMARY KEY (zip_id)
"""
c.execute(qCreate)
conn.commit()
conn.close()
下面的代码将数据库RIO附加到数据库BRAZIL,并打印所有数据库(RIO和BRAZIL)。你知道吗
db = 'brazil'
conn = sqlite3.connect(db+'.db')
c = conn.cursor()
qCreate = """ATTACH DATABASE ? AS competition """
c.execute(qCreate, ('rio.db',))
c.execute("PRAGMA database_list")
data = c.fetchall()
print data
conn.commit()
conn.close()
但是,以下代码只打印巴西数据库:
db = 'brazil'
conn = sqlite3.connect(db+'.db')
c = conn.cursor()
c.execute("PRAGMA database_list")
data = c.fetchall()
print data
conn.commit()
conn.close()
附加的数据库不再附加。你知道吗
这些行上的sqlite3 documentation提示:
The ATTACH DATABASE statement adds another database file to the current database connection.
我每次都要连接数据库吗?你知道吗
我计划使用附加数据库作为模式,但也许我应该尝试其他方法?你知道吗
我在iOS的Pythonista应用程序中使用python
几乎所有可以在SQLite中更改的设置都只应用于当前连接,即不保存在数据库文件中。 因此,只要重新打开主数据库,就必须重新附加任何数据库。你知道吗
只有在由于某些外部约束而必须使用多个数据库文件时,使用附加数据库才有意义。在大多数情况下,您应该只使用一个数据库。你知道吗
SQLite没有架构。如果您想用附加的数据库来模拟它们,您必须接受这种方法的限制。你知道吗
相关问题 更多 >
编程相关推荐