שאלה ב SQL
-
DROP TABLE IF EXISTS tmp; DROP TABLE IF EXISTS tmp2; CREATE TABLE tmp( id BIGINT ); CREATE TABLE tmp2( id BIGINT ); INSERT INTO tmp2 VALUES (10); INSERT INTO tmp2 VALUES (10); INSERT INTO tmp SELECT id from tmp2 WHERE tmp2.id NOT IN (SELECT id from tmp);
חשבתי שהתוצאה של זה תהיה להוסיף ל tmp רק רשומה אחת ("10")
כי נעשית בדיקה בשורה 17 (השורה האחרונה) שהערך לא קיים ב tmpמה שיוצא זה שהבדיקה נעשית לפני ההכנסה של הרשומה.
השאלה איך עושים שכן תהיה בדיקה
-
תפסתי מיד אחרי הפרסום את הבעיה שלי.
בכל אופן, מה שאני רוצה זה שבכל שורה ייבדק התנאי מחדש.
ברור במבנה הזה של השאילתה שזה לא קורה.
כי קודם נאספות כל השורות שמתאימות לתנאי ואז הן נוספות לטבלה הריקה.אני רוצה שבכל שורה תתבצע בדיקה מול הטבלה הריקה.
יש לי שאילתה הרבה יותר מורכבת, שניסיתי להביא את החלק הרלוונטי ממנה