Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mySQL中创建空视图_Mysql_Sql_View - Fatal编程技术网

如何在mySQL中创建空视图

如何在mySQL中创建空视图,mysql,sql,view,Mysql,Sql,View,我试图用我定义的列在mySQL中创建一个空视图 i、 我想要一个包含列的视图:年龄、id、性别,但包含0行 提前谢谢。我无法理解你为什么要这么做: CREATE VIEW foo AS SELECT NULL AS age, NULL AS id, NULL AS gender WHERE FALSE 尝试从此select语句定义视图: SELECT 5 as age, 10 as id, 'M' as gender WHERE age = 0 这将为您提供列的正确类型以下是一个示例: my

我试图用我定义的列在mySQL中创建一个空视图

i、 我想要一个包含列的视图:年龄、id、性别,但包含0行


提前谢谢。

我无法理解你为什么要这么做:

CREATE VIEW foo AS SELECT NULL AS age, NULL AS id, NULL AS gender WHERE FALSE

尝试从此select语句定义视图:

SELECT 5 as age, 10 as id, 'M' as gender
WHERE age = 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)

也许问题应该是:我如何。。。为什么?如果你试着回答的话会更有趣。哦,我打赌我知道。。。测试用例。如果您希望稍后在左联接或完全联接中使用此视图,并以编程方式确保该视图包含右列,即使它并不总是需要数据。e、 g.如果您使用的是
ISNULL
/
COALESCE
/
NVL
或这些列上类似的函数。+1。其中一个有用的场景是将查询生成的视图存根到另一台服务器。如果您要导出一个DB的模式脚本来组合一个本地集成测试DB,那么您不希望该DB击中服务器。删除它比删除它和所有其他引用更容易。视图没有行,它引用的结果集有行。Nice
where false
。或另一种方言的
,其中11