您的位置:首页 > 编程语言 > Python开发

Python数据库操作-数据库创建,插入,触发器

2011-03-10 11:06 896 查看
环境:

Grammar Version:2.6

Interpreter:python27/python.exe

Table1.py如下:连接数据库mydb.db,如果mydb.db不存在,自动创建。创建表table1,创建一个触发器insert_ok,当在table1中插入一条记录时同时在table2中插入该记录。

from sqlite3 import dbapi2
conn=dbapi2.connect("d://mydb.db")

sql="create table if not exists table1(NAME varchar(50),SCORE integer)"
conn.execute(sql)
cs=conn.cursor()
sql1="create trigger if not exists insert_ok before insert on table1 for each row when new.NAME not in(select NAME from table2) begin insert into table2(NAME,SCORE) values(new.NAME,new.SCORE); end;"
cs.execute(sql1)
cs.execute("insert into table1(NAME,SCORE) values('qing',98)")
cs.execute("insert into table1(NAME,SCORE) values('lily',86)")
conn.commit()
cs.execute('select * from table1')
recs=cs.fetchall()
print (recs)
print ("sum",len(recs),"record")
cs.close()
conn.close()


Table2.py如下:连接数据库mydb.db,如果mydb.db不存在,自动创建。创建表table2,当在table1中插入一条记录时同时在table2中插入该记录。

from sqlite3 import dbapi2
conn=dbapi2.connect("d://mydb.db")

sql="create table if not exists table2(NAME varchar(50),SCORE integer)"
conn.execute(sql)
cs=conn.cursor()
conn.commit()
cs.execute('select * from table2')
recs=cs.fetchall()
print (recs)
print ("sum",len(recs),"record")
cs.close()
conn.close()


第一次应先执行Table2.py,再执行Table1.py,否则会报错,因为触发器的执行在这里依赖table2的存在。

生成的mydb.db可以通过SQLite Expert Professional 2.0打开进行查看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐