我不应该立即看到多个插入吗?

Posted

技术标签:

【中文标题】我不应该立即看到多个插入吗?【英文标题】:Shouldn't I see multiple inserts right away? 【发布时间】:2013-02-15 01:24:34 【问题描述】:

我正在尝试在 Table2 中插入多行,其中包含来自 Table1 的多列,但是在这样做的同时,我正在编辑进入 Table2 的一些值。两者都是大表(数百万行)。这是查询:

insert into table2 (board_id,title,content,domainurl)
select (id, replace(title, '_', ' '), description, CONCAT("http://somesite.com/", title))
from table1

运行此查询时,插入是否应该立即开始(因为我没有进行连接)?几分钟前我已经开始查询(phpmyadmin 仍然显示“正在加载”),但我没有看到任何行被添加到 table2...?

编辑:查询刚刚停止并显示消息“#1241 - 操作数应包含 1 列”。我不知道那是什么意思!

【问题讨论】:

应该是即时的。您确定查询未仍在运行吗? table1 有多大? 【参考方案1】:

试试这个:

INSERT INTO table2 (board_id,title,content,domainurl)
SELECT 
  id AS board_id, 
  REPLACE(title, '_', ' ') AS title, 
  description AS content, 
  CONCAT("http://somesite.com/", title) AS domainurl 
FROM table1

【讨论】:

【参考方案2】:

根据here,我所要做的就是从 SELECT 子句中删除括号。

select id, replace(title, '_', ' '), description, CONCAT("http://somesite.com/", title)

完美而快速地工作!

【讨论】:

以上是关于我不应该立即看到多个插入吗?的主要内容,如果未能解决你的问题,请参考以下文章

如果我不关心插入速度,我应该将 S3 与 Redshift 一起使用吗?

load-acquire 应该立即看到 store-release 吗?

我们应该使用带有信号量的互斥量来进行正确的同步并防止竞争条件吗?

这是允许多个用户同时访问数据库的好方法吗?

跨多个集合的 Mongodb 批量插入

为啥我应该更喜欢单个'await Task.WhenAll'而不是多个等待?