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

环境:

Grammar Version:2.6

Interpreter:python27/python.exe

 

 

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

 

<textarea cols="50" rows="15" name="code" class="c-sharp">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() </textarea>  

 

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

 

<textarea cols="50" rows="15" name="code" class="c-sharp">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() </textarea>  

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

 

生成的mydb.db可以通过SQLite Expert Professional  2.0打开进行查看。

 

你可能感兴趣的:(数据库,python,sqlite,table,Integer,insert)