gpt4 book ai didi

mysql - 从另一个具有不同列数的表中插入表(MySQL)

转载 作者:行者123 更新时间:2023-11-29 01:52:11 27 4
gpt4 key购买 nike

问题,为什么这个剂量不起作用?

create table one (a int(1) default 1, b int(2));

create table two (b int(1));

insert into one select * from two;

错误:

Column count doesn't match value count at row 1

一个知道,一个可以算数,但是为什么,哲学上?数据库知道,从表two 中插入列的名称是b,知道表one 中的列a > 的默认值等于 1..那么,执行这个查询有什么问题呢?

一般来说 - 如果这种方式不可能,我该如何做,而不是手动,没有列及其计数的信息?

我知道:two 始终具有与表 one 相同的所有列。但是表 one 也有另一列,它们有一些默认值。

有什么办法吗?将 two 中的所有数据插入到 one 中,并用一些默认值或其他值填充剩余的列!

需要帮助!谢谢你很配!

最佳答案

当你运行时:

insert into one
select * from two;

SQL 引擎自动放入隐含的列。

  • 对于insert,这是声明顺序的列列表。
  • 对于 *,这是声明顺序的列列表。

没有按名称“匹配”列,只有每个表中的列列表。

所以,查询实际上是:

insert into one(a, b)
select b from two;

这对我来说像是一个错误。

故事的寓意?编写您想要的代码。始终包含列列表,特别是对于 insert 语句。所以写:

insert into one(b)
select b from two;

关于mysql - 从另一个具有不同列数的表中插入表(MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38647999/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com