【问题标题】:How to Handle SQL Lite UNIQUE Constraint properly如何正确处理 SQLite UNIQUE 约束
【发布时间】:2022-07-11 22:03:40
【问题描述】:

大家好,我正在学习 sql-lite,在更新表格时出现错误 UNIQUE 约束失败:contacts.Firstname 如何正确处理更新方法列具有唯一性

import sqlite3

try:
    conn = sqlite3.connect("database.db")
except Exception as e:
    raise e

cursor = conn.cursor()

sql_command = """
    CREATE TABLE IF NOT EXISTS contacts (
        Id INTEGER PRIMARY KEY AUTOINCREMENT, 
        Firstname TEXT  Unique, 
        Lastname TEXT, 
        Email TEXT
    )"""


cursor.execute(sql_command)


insert_data = """
    INSERT INTO contacts 
    (Firstname, Lastname, Email) 
    VALUES (
        'David',
        'Attenborough',
        'dattenboroughm@example.com'
    )
"""
cursor.execute(insert_data)


# Commit the changes to the database
conn.commit()


cursor.execute('UPDATE contacts SET Firstname = "pP" WHERE Id = 2')


# Commit the changes to the database
conn.commit()

conn.close()

【问题讨论】:

    标签: python mysql python-3.x sqlite


    【解决方案1】:

    我可能在这里搞错了,但你为什么希望这个名字是唯一的? 即使多个人有相同的名字(例如他们的 ID 或其他详细信息)也能让您轻松区分他们? 这是用户名之类的东西吗?

    【讨论】:

    • 我只是为了尝试目的而学习这个库,我已经给用户名提供了唯一的 val
    • 我明白,我个人建议您从用户名中删除 UNIQUE 约束。我相信这会解决你的问题我希望这个答案对你有所帮助,即使它不是你想听到的。
    猜你喜欢
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-06
    • 1970-01-01
    相关资源
    最近更新 更多