إدراج SQL عندما لا يكون موجودًا

لقد بحثت عن مشكلة في هذه المشكلة ، ولكن لا يمكنني حلها ...

أرغب في التحقق من عدم وجود سجل في جدول MySQL ثم إدراج سجل.

هنا الكود:

IF NOT EXISTS (SELECT * FROM personOffice WHERE personID = 2 AND officeID = 1)
    BEGIN
        INSERT INTO personOffice (personID, officeID) VALUES ('2', (SELECT officeID FROM offices WHERE title = 'Berlin'))
    END

يخبرني Mysql أن هناك خطأ في بناء الجملة في السطر الأول.


Thanks for your solutions.

0
راجع الإجابة المنشورة مسبقًا: stackoverflow.com/questions/1361340/&hellip،
وأضاف المؤلف Andrew - OpenGeoCode, مصدر

2 إجابة

INSERT INTO personOffice(personID, officeID) 
SELECT '2', (SELECT officeID FROM offices WHERE title = 'Berlin') FROM dual
WHERE NOT EXISTS (SELECT * FROM personOffice WHERE personId = 2 AND officeID = 1)
0
وأضاف

يمكنك تجربة هذا:

INSERT INTO personOffice (personID, officeID) 
VALUES ('2', (SELECT officeID FROM offices WHERE title = 'Berlin')) 
WHERE NOT EXISTS (SELECT * FROM personOffice WHERE personID = 2 AND officeID = 1)
0
وأضاف