能否通过DDL语句为数据库视图定义列描述?
能否通过DDL在CREATE VIEW中定义列描述?
大部分主流关系型数据库不支持在CREATE VIEW语句中直接定义列描述,需要先创建视图,再通过后续的DDL语句或系统工具来添加列描述,以下是几种常见数据库的实现方式:
MySQL/MariaDB
创建视图后,使用ALTER VIEW结合COMMENT子句为列添加描述:
-- 先创建视图 CREATE VIEW user_view AS SELECT id, name, email FROM users; -- 为视图列添加描述 ALTER VIEW user_view MODIFY COLUMN id INT COMMENT '用户唯一ID', MODIFY COLUMN name VARCHAR(50) COMMENT '用户姓名', MODIFY COLUMN email VARCHAR(100) COMMENT '用户邮箱';
PostgreSQL
创建视图后,使用COMMENT ON COLUMN语句单独为每个列添加描述:
-- 先创建视图 CREATE VIEW user_view AS SELECT id, name, email FROM users; -- 为视图列添加描述 COMMENT ON COLUMN user_view.id IS '用户唯一ID'; COMMENT ON COLUMN user_view.name IS '用户姓名'; COMMENT ON COLUMN user_view.email IS '用户邮箱';
SQL Server
创建视图后,通过系统存储过程sp_addextendedproperty添加列的扩展属性(即描述):
-- 先创建视图 CREATE VIEW user_view AS SELECT id, name, email FROM users; -- 为id列添加描述 EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'用户唯一ID', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'user_view', @level2type = N'COLUMN', @level2name = N'id'; -- 重复上述存储过程,为其他列添加描述
简单来说,你没法一步在CREATE VIEW里完成列描述的定义,必须分两步:先建视图,再补加描述。
内容的提问来源于stack exchange,提问作者jamiet
相关产品推荐
相关产品推荐

