You need to enable JavaScript to run this app. SQL中无需创建实体表即可创建带默认值集合的视图咨询
优惠活动
大模型
产品
解决方案
定价
更多

SQL中无需创建实体表即可创建带默认值集合的视图咨询

实现纯虚拟默认值SQL视图的方案

该需求完全可实现,全程不需要创建任何实体表,仅需修正原示例代码中缺失的列别名定义即可。

原代码缺陷说明

你当前的写法没有为VALUES生成的派生表、以及派生表内的列指定别名,绝大多数SQL引擎无法自动识别输出列名,会直接抛出语法错误。

通用合规写法(适配PostgreSQL、SQL Server、Oracle、MySQL 8.0.19及以上版本)

CREATE VIEW PersonalView 
AS 
SELECT * 
FROM (
    VALUES
        ('Sara', 'Moradi', 22)
) AS PersonalData(first_name, last_name, age);
  • 补充说明:如果需要存储多组默认值,只需要在VALUES子句中追加逗号分隔的行即可,例如:
CREATE VIEW PersonalView 
AS 
SELECT * 
FROM (
    VALUES
        ('Sara', 'Moradi', 22),
        ('Alex', 'Smith', 30)
) AS PersonalData(first_name, last_name, age);
  • 注意事项:如果列是数值、日期等非字符串类型,不需要给对应值加单引号,避免类型隐式转换带来的潜在问题。

低版本MySQL兼容写法

对于MySQL 8.0.19之前不支持VALUES行构造派生表的版本,可以用UNION ALL拼接单行SELECT的方式实现:

CREATE VIEW PersonalView 
AS 
SELECT 'Sara' AS first_name, 'Moradi' AS last_name, 22 AS age
UNION ALL
-- 追加更多默认行直接在下方新增SELECT语句即可
SELECT 'Alex' AS first_name, 'Smith' AS last_name, 30 AS age;

以上实现的都是纯虚拟视图,不会持久化存储任何实体数据,完全符合你“不创建实体表”的要求。

内容的提问来源于stack exchange,提问作者Sara Moradi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.11 16:36:03