MySQL工作台:将表列复制到目标列会将数据附加到目标列的底部,而不是顶部.为什么



当我使用INSERT INTO将数据从源表A中的一列(我只想复制一列(复制到目标表B中的一个新列时,复制的数据会放在目标列的底部,而不是放在我希望它去的顶部。目的地表由6列组成;源表3列。我添加了一个";"空";列,以便从源表中的列接收数据。我被迫将其定义为NULL列。

举例说明:假设目标表有5列,每列1000行。目的地列名义上是"0";"空";在复制之前。当我完成复制时,目标列的前1000行已经用NULL语句填充,复制的数据从第1001行开始。现在,只有新的目标列保存第1000行之后的任何数据。

从前1000行中删除NULL语句不会将复制的数据移到顶部。我怀疑问题可能是因为目标表的列定义最初都设置为NULL。它们可能应该设置在NN,但我不知道这是否是造成我问题的原因。

非常感谢您的帮助。

sql中的所有内容都是按行而非列组织的。insert始终插入新行,从不修改现有行(除非指定on duplicate key update ...(。听起来你想更新现有的行;为此使用update语句,而不是insert语句,并且必须提供信息来标识要更新的行。

最新更新