Когда вы используете метод ShowDialog()
или Show()
, а затем закройте форму, объект формы не будет полностью уничтожен ( closed! = destroy ). Он останется в живых, только он находится в «закрытом» состоянии, и вы все еще можете что-то делать с ним.
DELETE b FROM BLOB b
LEFT JOIN FILES f ON f.id = b.fileid
WHERE f.id IS NULL
DELETE FROM BLOB
WHERE NOT EXISTS(SELECT NULL
FROM FILES f
WHERE f.id = fileid)
DELETE FROM BLOB
WHERE fileid NOT IN (SELECT f.id
FROM FILES f)
По возможности выполните DELETE в транзакции (при условии, что поддерживается - IE: Not on MyISAM), чтобы вы могли использовать откат для возврата изменений в случае возникновения проблем.
DELETE FROM blob
WHERE NOT EXISTS (
SELECT *
FROM files
WHERE id=blob.id
)
DELETE FROM blob
WHERE fileid NOT IN
(SELECT id
FROM files
WHERE id is NOT NULL/*This line is unlikely to be needed
but using NOT IN...*/
)
NOT IN (NULL)
возвращает пустой набор результатов, поэтому необходимо исключить NULL. Но столбец id
, вероятно, не будет иметь значение NULL, так что «вряд ли понадобится».
– Martin Smith
10 April 2015 в 16:40
not in(null)
довольно логично, почему он не работает? В чем смысл этого?
– Pacerier
11 April 2015 в 14:41
unknown
и все либо false
, либо unknown
и никогда не могут оценить true
– Martin Smith
11 April 2015 в 21:04