【发布时间】:2012-11-19 19:47:57
【问题描述】:
我正在尝试使用我定义的列在 mySQL 中创建一个空视图。
即我想要一个包含列的视图:年龄、id、性别,但包含 0 行。
提前致谢。
【问题讨论】:
-
视图没有行,它引用的结果集有。
我正在尝试使用我定义的列在 mySQL 中创建一个空视图。
即我想要一个包含列的视图:年龄、id、性别,但包含 0 行。
提前致谢。
【问题讨论】:
这里有一个例子:
mysql> create or replace view v_test as
-> select 99 as age,
-> 2147483647 as id,
-> 'F' as gender
-> from dual
-> where false;
Query OK, 0 rows affected (0.04 sec)
mysql> desc v_test;
+--------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------+------+-----+---------+-------+
| age | int(2) | NO | | 0 | |
| id | bigint(10) | NO | | 0 | |
| gender | varchar(1) | NO | | | |
+--------+------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
mysql> select * from v_test;
Empty set (0.00 sec)
【讨论】:
where false。或者where 1 <> 1 用另一种方言
为什么你会想要这样做是我无法理解的:
CREATE VIEW foo AS SELECT NULL AS age, NULL AS id, NULL AS gender WHERE FALSE
【讨论】:
ISNULL / COALESCE / NVL 或类似的功能。
尝试从此选择语句定义您的视图:
SELECT 5 as age, 10 as id, 'M' as gender
WHERE age = 0
这将为您提供正确的列类型
【讨论】: