J'essaye de créer une table où j'en ai besoin pour NE PAS permettre des rangées où 3 champs sont identiques.Plusieurs colonnes uniques dans SQLite
Lorsque je crée la table en Python à l'aide de SQLLite, j'utilise ce qui suit, mais je n'obtiens presque aucun résultat. Il s'arrête généralement après avoir écrit 2 enregistrements, donc quelque chose croit évidemment que c'est dupliqué.
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)
);
Alors, je voudrais la base de données pour ne pas autoriser les enregistrements où ownerID1, ownerID2, AccountKey et argID1 sont les mêmes.
Quelqu'un peut-il m'aider avec cela?
Merci!
* Il s'arrête généralement après avoir écrit 2 enregistrements, donc quelque chose croit évidemment que c'est dupliqué. * - Pourquoi est-ce évident? Quel message d'erreur obtenez-vous lorsque l'insertion échoue? –
Vous n'avez pas spécifié 'NOT NULL' sur les colonnes, alors peut-être que vous obtenez des valeurs nulles qui violent la contrainte unique. À quoi ressemblent les données après l'échec d'une insertion? – Hollister