Tom*_*lak 11 database enums rdbms types
接下来提出这个问题:" 数据库枚举 - 优点和缺点 ",我想知道哪些数据库系统支持枚举数据类型,以及有关它们如何执行的一些细节(例如,内部存储的内容,限制是什么,查询语法含义,索引含义,...).
用例的讨论或利弊应该在其他问题中进行.
我知道MySQL确实支持ENUM:
SELECT enum_col+0" 访问ENUM('0','1','2')应该避免,因为它'0'会有整数值1PostgreSQL从8.3开始支持ENUM.对于旧版本,您可以使用:
您可以通过执行以下操作来模拟ENUM:
CREATE TABLE persons (
person_id int not null primary key,
favourite_colour varchar(255) NOT NULL,
CHECK (favourite_colour IN ('red', 'blue', 'yellow', 'purple'))
);
Run Code Online (Sandbox Code Playgroud)
你也可以:
CREATE TABLE colours (
colour_id int not null primary key,
colour varchar(255) not null
)
CREATE TABLE persons (
person_id int not null primary key,
favourite_colour_id integer NOT NULL references colours(colour_id),
);
Run Code Online (Sandbox Code Playgroud)
当你了解最喜欢的颜色时,你可以添加一个连接,但是你可以通过在颜色表中添加一个条目来添加颜色,而不是每次都不需要更改模式.您还可以为颜色添加属性,例如HTML代码或RVB值.
您也可以创建自己的类型来执行枚举,但我认为它不会比varchar和CHECK.
| 归档时间: |
|
| 查看次数: |
5855 次 |
| 最近记录: |