sqlite 如何在SQL中设置一个列的最大整数值?

rjjhvcjd  于 8个月前  发布在  SQLite
关注(0)|答案(1)|浏览(100)

我正在创建一个Python程序,用于使用闪存卡方法学习新单词。为此,我需要一个SQL数据库,其中表是一对语言。当用户正确回答时,单词对的值增加1,但不应超过4。如何限制相应列的最大值?
我想用sqlite3把这个规则写入数据库本身。当然,最大值可以在Python端设置,但这会使代码相当复杂。
事实上,我试着谷歌它,但找不到正确的答案。到目前为止,创建字典的函数是:

def create_dictionary ():
    lang1 = input('Insert first language: ')
    lang2 = input('Insert second language: ')
    dict_name = (lang1 + "_" + lang2)
    cur = conn.cursor()
    cur.execute('''CREATE TABLE IF NOT EXISTS {tab}
  (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
  {word1}   TEXT UNIQUE,
  {word2}   TEXT UNIQUE,
  box12   INTEGER,
  box21   INTEGER);'''.format(tab = dict_name, word1 = lang1, word2 = lang2))  
    print("Table created successfully")
    conn.commit()
    cur.close()
l0oc07j2

l0oc07j21#

基本上有两种方法。
1.列约束:您可以对列设置约束,以确保只允许特定范围内的值。当使用这种方法时,你的python函数应该抛出一个错误,它的值超过了限制。

CREATE TABLE table (
    id INTEGER PRIMARY KEY,
    value_column INTEGER CHECK (value_column <= 4)
);

1.应用逻辑:您可以将自己的逻辑添加到API中,以确保该值不超过4。

相关问题