我有一个六向联合选择,我正在使用它是PHP脚本的一部分。该命令在脚本中工作正常。在从SQL客户端执行时,该命令也能正常工作。然而,当我尝试将SELECT放入CREATE TABLE mytable SELECT中时,我得到如下错误消息:
Incorrect column name ''
字符串
在其中五个联合段中,有一个列名“”,它是稍后在脚本中填充的数据的占位符。但是在其中一个工会中,在同一个地方有varchar(32)列。
看起来正常执行的命令并不关心是否存在“anonymous”列。但在CREATE TABLE版本中,它不喜欢这样。
为什么联合列名的SELECT和CREATE TABLE SELECT有不同的规则?
1条答案
按热度按时间ar5n3qh51#
表不能包含名称为空或缺少名称的列。结果集可以。
CREATE TABLE SELECT
从SELECT
语句结果集中的列名中获取表的列名。因此,您需要确保结果集的每一列都有一个名称,该名称可以从某个表中的列派生,也可以从AS
别名派生。比如说,字符串
适合在CREATE TABLE语句中使用,而
型
不是,因为它不会为第一列分配别名列名。