我的猜測是默認情況下外鍵引用設置爲RESTRICT。但是,這有什麼標準嗎?任何數據庫類型的默認值是否相等?還是應該在所有陳述中定義這些值才能確定?SQL中外鍵的ONDELETE和ONUPDATE默認值是什麼?
3
A
回答
1
對於postgres,NO ACTION是默認設置,對於大多數用途而言,其與RESTRICT相同,如here所述。
我會建議明確的,特別是在DDL,每當有疑問(然後一些)。 這有多種原因:
- 一些行爲數據定義語句可能依賴於服務器的設置和版本,讓您的備份和恢復可以被明確
- 如果您嘗試從一個移動數據受益RDBMS引擎到另一個顯式的可以幫助你發現兩種方言之間的誤解(如果他們不會默默地跳過他們沒有得到的部分)
- 如果你現在甚至想到歧義,試着想象下一個維護數據庫或者你自己在幾年內 - 在你的創建腳本中顯式和評論將在一天內得到回報
0
您還應該考慮到並非所有的DBMS都會接受這些選項(也不允許使用相同的值)。例如,我認爲Oracle不支持onupdate子句
相關問題
- 1. 如何查詢外鍵onupdate/ondelete?
- 2. SQL:爲什麼varchar(50)是默認值?
- 3. 什麼是PHImageRequestOptionsResizeMode默認值?
- 4. rmarkdown中pdf的默認值是什麼?
- 5. iOS中@property的默認值是什麼?
- 6. 爲什麼(默認)外鍵是空的? 。 。並且外鍵和主鍵可以是同一列嗎?
- 7. 什麼是d3默認鍵功能?
- 8. Django字段的默認值是什麼?
- 9. 什麼是'success_url'變量的默認值
- 10. kCGImageSourceShouldCache的默認值是什麼?
- 11. android:vmSafeMode的默認值是什麼?
- 12. 字符的默認值是什麼?
- 13. LSMinimumSystemVersion的默認值是什麼?
- 14. 什麼是asp:textbox.MaxLength的默認值
- 15. StreamReader的默認值是什麼?
- 16. BlendEquation的默認值是什麼?
- 17. 設置外鍵屬性的默認值
- 18. 爲什麼AllowPartiallyTrustedCallers不是默認值?
- 19. 默認值是什麼(IEnumerable <T>)?
- 20. 什麼是默認的TransformerFactory?
- 21. 什麼是默認的MaxPoolSize?
- 22. 「默認值」包含什麼?
- 23. SQL默認值
- 24. SQL默認值
- 25. SQL Server XP_READREG - 讀取默認鍵值
- 26. vs2008中的默認智能感知快捷鍵是什麼?
- 27. Solr:沒有顯式設置默認值的字段默認值是什麼?
- 28. UnityContainer:什麼是默認lifetimemanager
- 29. 什麼是默認goroutine?
- 30. docker中的默認WORKDIR是什麼?
對於ISO/ANSI標準SQL-92,缺省值爲「NO ACTION」。這是因爲顯式引用操作(包括'NO ACTION')是一個完整的SQL-92功能。換句話說,入門級的SQL-92允許你創建一個FK而不指定參考動作,而'NO ACTION'則是大多數從業者在缺省情況下期望外鍵可以工作的方式。還要考慮到,當引入SQL-92時,許多SQL產品缺少「CASCADE」引用操作。 – onedaywhen 2010-03-25 09:23:27