我已经创建了一个表,并希望使用联接将数据从另一个表插入该表中。我遇到的问题是表2很大,有亿万行,所以当我运行查询时,总是收到错误消息“ 2646 no more spool space”。
这是我尝试使用的查询示例,我已经在表中创建了空列。
$delivery['fields'][] = array('name' => 'subject', 'type' => 'html', 'content' => 'A cool subject');
$delivery['fields'][] = array('name' => 'first_name', 'type' => 'html', 'content' => '<strong>Panayiotis</strong>');
$deliveries[] = $delivery;
谢谢
答案 0 :(得分:0)
尝试将其按ID分别进行1000万次和1000万次的冲洗
INSERT INTO database1.table1(empty_column)
选择所需的列
来自database2.table2
table1.column上的INNER JOIN database1.table1 = table2.column
其中table1.id <10000000
和table1.id> 0
然后多次启动它,直到完成所有记录
在学习表1后清空,请再次编辑-再次编辑:
update e_tbl
set empty_column = desiredcolumn
from database2.table2 big_tbl
INNER JOIN database1.table1 e_tbl on e_tbl.column =
big_tbl.column
where big_tbl.id <10 000 000
and big_tbl.id > 0
答案 1 :(得分:0)
尝试一个临时表。 Teradata还是SQL Server?
SQL Server
SELECT desiredcolumn
into #temp
from database2.table2
INNER JOIN database1.table1
on table1.column = table2.column;
INSERT INTO database1.table1 (empty column)
SELECT desiredcolumn
from #temp;
Teradata
Create volatile Table TempTable as (
SELECT desiredcolumn
from database2.table2
INNER JOIN database1.table1
on table1.column = table2.column
) with data
on commit preserve rows;
INSERT INTO database1.table1 (empty column)
SELECT desiredcolumn
from TempTable;