之前寫sql,插入前檢查是否存在,語句中,有dual表,這個不曾瞭解過,就去看了一下,在此做下記錄。
INSERT INTO tag_info (tagContent)
SELECT 'test'
from DUAL
where not exists(select tagId from tag_info where tagContent='test');
看着上面的語句,查詢dual表,無外乎就是做了一個臨時表而已。
官方文檔就解釋
You are permitted to specify DUAL as a dummy table name
in situations where no tables are referenced:
不知道涉及哪個表的時候,可以指定DUAL作爲一個假的表名:
這個表在較老版本,應該是沒有。不過最新的版本都已經有了。上述的語法應該就是它比較常見的應用場景了。
我們也可以用一張只有一條記錄的表來模擬dual表,也是可以的。
就像這個一樣,鏈接。