【发布时间】:2011-01-05 13:07:30
【问题描述】:
我正在尝试创建一个表,我需要它来不允许 3 个字段相同的行。
当我使用 SQLLite 在 Python 中创建表时,我使用以下方法,但我几乎没有得到任何结果。它通常在写入 2 条记录后停止,因此显然有些东西认为它是重复的。
CREATE TABLE CorpWalletJournal (
date INT,
refID INT,
refTypeID INT,
ownerName1 TEXT,
ownerID1 INT,
ownerName2 TEXT,
ownerID2 INT,
argName1 TEXT,
argID1 ID,
amount INT,
balance INT,
reason TEXT,
accountKey INT,
UNIQUE (ownerID1, ownerID2, accountKey, argID1)
);
所以,我希望数据库不允许 ownerID1、ownerID2、accountKey 和 argID1 相同的记录。
谁能帮我解决这个问题?
谢谢!
【问题讨论】:
-
它通常在写入 2 条记录后停止,所以显然有些东西认为它是重复的。 - 为什么这么明显?插入失败时会收到什么错误消息?
-
您没有在任何列上指定
NOT NULL,因此您可能会得到违反唯一约束的空值。插入失败后的数据是什么样的?
标签: python sql sqlite unique-key