当我尝试INSERT
进入具有从视图中提取的数据的表时遇到此错误。
我注意到有关此错误的许多现有问题与查询中的ON
或AND
条件有关,但我没有任何这些问题。这是我正在调用的简单SELECT x FROM ...
视图,就像这样...
@query_statement = CONCAT('insert into target_table SELECT
mv.col1
mv.col2
mv.col3
FROM (',database_name,'.myView mv) );
您会注意到,我正在使用一个变量database_name,因为该语句位于存储过程中,并遍历一堆数据库,调用附加到每个数据库的视图,然后将此数据插入到单独的表中。 (我知道这不是一个很好的方法,但这是我们继承的遗留问题)
现在,我面临的主要错误是调试该噩梦,它是此查询可在某些数据库上运行,而不适用于其他数据库。我已经检查了正在调用视图的源表,并且没有将DOUBLE作为数据类型的列。
答案 0 :(得分:0)
发现了问题。
在调查并检查了所有涉及的表中的列类型之后,随着我存储的过程遍历每个数据库,又进行了另一个联接。在该循环中,它在每个数据库上调用了一个视图,并且进行了不正确的联接,这实际上是试图将INT列联接到VARCHAR上。
寻找梦ight,但分解一切并逐步进行确实值得。