J'ai une table A avec des colonnes Aname, Work
create table A(Aname varchar(40) , Work varchar(40) )
Le tableau contient déjà datatables ci-dessous:
INSERT INTO A VALUES ('GREAME ','PLAYER')
maintenant je veux que quand j'insère un nouvel logging, Aname – GREAME, Work — SALESMAN, alors il est
inséré, mais si j'insère ceci: Aname – GREAME Work – PLAYER à nouveau, alors il n'est pas inséré
Je veux ceci:
Autrement dit, la colonne Travail vérifie l'unicité lorsque la valeur à insert d'Aname
existe déjà.
Comment puis-je l'implémenter? S'il vous plaît aider avec le code.
MODIFIER——
dans la requête d'insertion, la colonne Aname serait ramassée à partir d'une autre table B alors comment puis-je le faire?
Une contrainte unique ou une key primaire vous empêchera d'insert une erreur / exception. Cet insert n'insèrera tout simplement pas la ligne où il existe déjà.
insert into A (Aname, Work) select 'GREAME', 'PLAYER' where not exists (select * from A where Aname = 'GREAME' and Work = 'PLAYER')
Et si vous avez besoin de la combinaison de l'AName et du Travail pour être Unique alors
ALTER TABLE A ADD CONSTRAINT U_NameWork UNIQUE(AName, Work)
Mais si vous avez besoin d'être unique quel que soit le travail, alors
ALTER TABLE A ADD CONSTRAINT U_Name UNIQUE(AName)
Edit: Comme pour SanjeevKumar, faire (AName, Work) une PRIMARY KEY composite fonctionnera aussi pourvu que vous n'ayez pas d'autre PK, bien que vous puissiez aussi considérer un PK de rlocation.