我是SQL新手。我想检查数据库中是否存在表。如果它不存在而不是创建它。另外我想检查表中是否存在记录。如果存在而不是用新数据更新它,如果不存在而不是在表中插入新记录。这是代码。我不知道如何检查现有的表,记录。
import sqlite3 as lite
con = lite.connect('test.db')
cur = con.cursor()
con.execute('''CREATE TABLE EMPLOYEE
(ITEMA TEXT PRIMARY KEY NOT NULL,
ITEMB CHAR(50) NOT NULL,
ITEMC CHAR(50),
ITEM0 TEXT
ITEM1 TEXT
ITEM2 TEXT
ITEM3 TEXT
ITEM4 TEXT);''')
con.execute("INSERT INTO EMPLOYEE (ID,NAME,ADDRESS,MOBILE_NUMBER,TRANSPORT_FOR_LUNCH,ONLY_DROP,KIDS,ADULTS) \
VALUES (%s,%s',%s,%s,%s,%s,%s,%s)" %(ia,ib,ic,i0,i1,i2,i3,i4));
答案 0 :(得分:1)
要测试sqlite中的表存在,您可以执行以下操作:
cursor = con.cursor()
statement = "SELECT name FROM sqlite_master WHERE type='table';"
if (table_name,) in cursor.execute(statement).fetchall():
print "Table %s exists." % table_name
要根据记录的存在情况进行更新或创建,sqlite允许使用replace,这是insert or replace
的别名:
replace into table_name (columns) values (values)
答案 1 :(得分:0)
CREATE TABLE EMPLOYEE IF NOT EXISTS ..
只有在不存在时才会创建