關於mysql中的dual表

之前寫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表,也是可以的。
就像這個一樣,鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章