一些 ORM(原则)不支持数据库模式定义中的默认值,因为它们声明它不可移植。但 SQL92 支持DEFAULT
value 子句,所有 ORM 支持的数据库(MySQL、PostgreSQL、SQL Server、Oracle)也都支持它。
DEFAULT
不同供应商/RDBMS 版本中的子句有哪些缺陷?
一些 ORM(原则)不支持数据库模式定义中的默认值,因为它们声明它不可移植。但 SQL92 支持DEFAULT
value 子句,所有 ORM 支持的数据库(MySQL、PostgreSQL、SQL Server、Oracle)也都支持它。
DEFAULT
不同供应商/RDBMS 版本中的子句有哪些缺陷?
旨在真正与存储层无关的 ORM 通常会假设数据层的绝对最小值(表、行、标准类型的列、索引、PK、FK 等等),并将实现其他所有内容,例如默认值和更复杂的约束本身。
虽然我可以提到的每个关系数据库(mssql、oracle、prostgres、sqlite、mysql 等)都支持 SQL-92 中定义的默认值,但是一旦您考虑使用面向文档的数据库和其他不太传统的安排,情况就会大不相同你的存储层(他们可能不支持它们,如果他们支持,操作语义可能不完全相同)。