我需要像这样执行INSERT
查询:
INSERT INTO Clients (ClientName, CountryID) VALUES ("STYLUS", 4)
可是:
仅在ClientName
(此处为示例的STYLUS)尚不存在时才插入
必须从其他查询中检索CountryID(此处为示例4):SELECT CountryID FROM Countries WHERE CountryUK = 'FRANCE'
是否可以为所有这些构建单个SQL查询?
感谢。
答案 0 :(得分:0)
对于第一个条件,您需要在表上使用唯一索引/约束:
create unique index unq_clients_clientname;
然后,您可以插入值:
insert into clients(clientname, countryId)
select 'STYLUS', countryid
from countries
where countryuk = 'FRANCE';
如果您尝试插入重复值,则会返回错误。如果您不想要错误,那么与数据库无关的方法是:
insert into clients(clientname, countryId)
select 'STYLUS', countryid
from countries
where countryuk = 'FRANCE' and
not exists (select 1 from clients c2 where c2.clientname = 'STYLUS');
答案 1 :(得分:0)
很简单,
if not exists(select * from Clients where Cientname='Stylus') begin insert into Clients select 'Stylus',Countryid from Countries where countryname='France' end
将完成工作。希望它有所帮助。