更新日期:2019-10-10。
在上一篇中,列出了 11 种常见数据库对于查询语句的支持情况。接下来我们继续介绍这些数据库产品对于索引和约束的特性比较。
| 索引 | Oracle | PostgreSQL | SQL Server | IBM Db2 | MySQL | MariaDB | Firebird | H2 | HSQLDB | Derby | SQLite |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 部分索引 | Y1 | Y | Y2 | N | N | N | N | N | N | N | Y |
| 降序索引 | Y | Y | Y | Y | Y | N | Y3 | Y | Y | N | Y |
| 函数索引 | Y | Y | N4 | Y | Y | N4 | Y5 | N | N | N | Y |
| 使用自定义函数创建函数索引 | Y | Y | N | Y | N | Y | N | N | N | N | N6 |
| 索引包含额外的列 | N | Y | Y | Y | N | N | N | N | N | N | N |
| 基于多列的统计信息 | Y | Y | Y | Y | N | N | N | N | N | N | N |
| 聚集索引 | Y7 | N | Y | Y | Y | Y | N | N | N | N | Y |
| 唯一索引中允许多个 NULL 值 | N8 | Y | N | N | Y9 | Y9 | N | Y | Y | N | Y |
| 约束 | Oracle | PostgreSQL | SQL Server | IBM Db2 | MySQL | MariaDB | Firebird | H2 | HSQLDB | Derby | SQLite |
| 延迟约束 | Y | Y | N | N | N | N | N | N | N | Y | Y |
| 检查约束 | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| 基于子查询的检查约束 | N | N | N | N | N | N | Y | N | N | N | N |
| 基于自定义函数的检查约束 | N | Y | Y | Y | N | N | Y | N | N | N | N6 |
| 排除约束 | N | Y | N | Y | N | N | N | N | N | N | N |
| 语句级别的约束评估 | Y | Y | Y | Y | N | N | N | Y | Y | Y | Y |
| 外键约束支持 ON DELETE CASCADE | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| 外键约束支持 ON UPDATE CASCADE | N | Y | Y | N | Y | Y | Y | Y | Y | N | Y |
转载:https://blog.csdn.net/horses/article/details/102548684
查看评论