我想仅在数据不存在的情况下插入数据。继承人我是怎么做的:
IF NOT EXISTS (SELECT Nom, IDSociete FROM stagiaire, societe WHERE Nom = 'Paul' AND IDSociete = (SELECT ID from soceite where NomSoc='Promoplantes'))
BEGIN
INSERT INTO stagiaire(Nom, Email, Telephone, IDSociete, Pseudo, Password)
VALUES('Paul', 'paul@mail.com',
'000000000', '2'
, 'paulPseudo', 'paulPassword')
END
它不会起作用。 我有 : 保罗为Promoplantes工作 我想要 : 保罗为KebabHouse工作 (这是一个例子) 我的查询只是看到已经有一个保罗所以它没有插入它。但他们是不同的保罗! 你知道我失败的地方吗?
另外,你知道任何可以在将来检查我的查询语法的网站吗?
答案 0 :(得分:0)
放手一搏。它应该通过将其替换为连接(更高效)
来消除使用子查询的需要IF NOT EXISTS (
SELECT
*
FROM stagiaire stg
LEFT JOIN societe sct
ON stg.IDSociete = sct.ID
WHERE Nom = 'Paul'
AND NomSoc = 'Promoplantes'
)
BEGIN
INSERT INTO stagiarie (Nom, Email, Telephone, IDScoiete, Pseudo, Password)
VALUES ('Paul', 'paul@mail.com', '000000000', '2', 'paulPseudo', 'paulPassword')
END