results = db.execute("SELECT ...")
if results:
#... code ...
#or
if len(results) > 0:
#... code ...
可能您必须在中使用两个SELECT查询
results = db.execute("SELECT ... FROM ... WHERE PName = ... ")
if results:
print("ERROR: PName exists with PCode", results[0])
else:
results = db.execute("SELECT ... FROM ... WHERE PCode = ... ")
if results:
print("PCode exists with PName", results[1])
db.execute("UPDATE ...")
else:
db.execute("INSERT ...")
编辑:
最小工作代码
import sqlite3
# - functions -
def drop_db(db):
db.execute('''DROP TABLE IF EXISTS product''')
db.commit()
def create_db(db):
db.execute('''CREATE TABLE IF NOT EXISTS product (
id INTEGER PRIMARY KEY,
PCode INTEGERT,
PName TEXT
);''')
db.commit()
def insert_example_data(db):
db.execute("INSERT INTO product (PCode, PName) VALUES (1, 'Phone')")
db.execute("INSERT INTO product (PCode, PName) VALUES (2, 'Car')")
db.commit()
def test(db, code, name):
print(' - test:', name, code, ' -')
result = db.execute("SELECT * FROM product WHERE PName=?", (name,)).fetchone()
if result:
print('ERROR PName exists with PCode:', result[1], 'and ID:', result[0])
else:
result = db.execute("SELECT * FROM product WHERE PCode=?", (code,)).fetchone()
if result:
print('PCode exists with PName:', result[2], 'and ID:', result[0])
print('UPDATE PName to:', name)
db.execute('UPDATE product SET PName=? WHERE Pcode=?', (name, code))
db.commit()
else:
print('INSERT')
db.execute('INSERT INTO product (PCode, PName) VALUES (?, ?)', (code, name))
db.commit()
def display(db, code=None, name=None):
print(' - display', code, name, ' -')
if code is None and name is None:
print('** need code and/or name **')
return
if code is not None and name is None:
results = db.execute("SELECT * FROM product WHERE PCode=?", (code,))
if code is None and name is not None:
results = db.execute("SELECT * FROM product WHERE PName=?", (name,))
if code is not None and name is not None:
results = db.execute("SELECT * FROM product WHERE PCode=? AND PName=?", (code, name,))
for row in results:
print(row)
# - main -
db = sqlite3.Connection("data.sqlite")
drop_db(db)
create_db(db)
insert_example_data(db)
test(db, 3, 'Car')
test(db, 7, 'Boat')
test(db, 7, 'House')
display(db, code=7)
display(db, name='Boat')
display(db, name='House')
display(db)
db.close()
Normall方法是使用
SELECT
检查数据库中是否已经存在值。如果结果为零,则可以添加新值类似这样的东西(它可能还需要
cursor
、fetch()
或fetchall()
等等)可能您必须在中使用两个
SELECT
查询编辑:
最小工作代码
相关问题 更多 >
编程相关推荐