Default-Value

為什麼列預設值不能通過不同的 RDBMS 移植?

  • September 23, 2013

一些 ORM(學說)不支持數據庫模式定義中的預設值,因為它們聲明它不可移植。但是SQL92支持DEFAULTvalue子句,ORM支持的所有數據庫(MySQL、PostgreSQL、SQL Server、Oracle)也都支持。

DEFAULT在不同供應商/版本的 RDBMS 中,該子句的缺陷是什麼?

一個真正與儲存層無關的 ORM 通常會假設數據層的絕對最小值(表、行、標準類型的列、索引、PK、FK 等等),並將實現其他所有內容,例如預設值和更複雜的約束本身。

雖然我可以提到的每個關係數據庫(mssql、oracle、prostgres、sqlite、mysql ……)都支持 SQL-92 中定義的預設值,但是一旦您考慮使用面向文件的 DB 和其他不太傳統的安排您的儲存層(他們可能不支持它們,如果他們這樣做,操作語義可能不完全相同)。

引用自:https://dba.stackexchange.com/questions/50329