MySQL與標準SQL的差異
讓我們瞭解MySQL和標準SQL之間的差異。在某些情況下,MySQL執行許多操作的方式有所不同:
許可權
在授予使用者的許可權方面,MySQL和標準SQL之間存在許多差異。在MySQL中,刪除表時,表的許可權不會自動撤銷。需要顯式發出REVOKE語句才能撤銷表的許可權。
外部索引鍵約束
MySQL對外部索引鍵約束的實現與SQL標準不同。如果父表中有多行具有相同的引用鍵值,InnoDB引擎會像其他具有相同鍵值的父行不存在一樣進行外部索引鍵檢查。
例如,如果定義了RESTRICT型別的約束,並且存在具有多個父行子行,InnoDB將不允許刪除父行。
在對多行使用insert、delete或update的SQL語句中,外部索引鍵約束(例如唯一約束)逐行檢查。當執行外部索引鍵檢查時,InnoDB會在需要檢查的子記錄或父記錄上設定共享行級鎖。
MySQL規定出於效能原因,被引用列必須被索引。但是MySQL並不強制要求被引用列必須是唯一的或宣告為NOT NULL。
註釋
標準SQL使用C語法/* this is a comment */來顯示註釋。MySQL伺服器也支援此語法。標準SQL使用'--'作為註釋起始序列。MySQL伺服器使用'#'作為註釋起始字元。
廣告