gpt4 book ai didi

mysql UPDATE 说列不能为空。为什么它是空的?

转载 作者:可可西里 更新时间:2023-11-01 07:30:03 25 4
gpt4 key购买 nike

我有一个名为 carriers_rects 的连接表,如下所示:

+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| carrier_id | int(11) unsigned | NO | | NULL | |
| rect_id | int(11) unsigned | NO | | NULL | |
+------------+------------------+------+-----+---------+----------------+

我还有一个 rects 表,如下所示:

+---------+-------------+------+-----+----------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+----------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(54) | NO | | new rect | |
| width | varchar(54) | NO | | NULL | |
| length | varchar(54) | NO | | NULL | |
| rounded | tinyint(1) | NO | | NULL | |
| xx | varchar(54) | NO | | NULL | |
| yy | varchar(54) | NO | | NULL | |
| height | varchar(54) | NO | | NULL | |
+---------+-------------+------+-----+----------+----------------+

我正在尝试将一个 case_id 列添加到 rects 并使其成为一个 one-to-many 关系并终止 carriers_rects 表。我们正在移动我们的数据库,我们从未使用过 many-to-many 关系。

所以我将 case_id 列添加到 rects:

alter table rects add case_id int(11) not null;

然后我尝试用 carriers_rects 表中匹配的所有 case_id 更新 rects 上的 case_id

update rects set case_id = (select carrier_id from carriers_rects where rect_id = id);

我收到 column case_id cannot be null

我测试过是否有任何空值,但我似乎找不到任何空值。

select * from (select * from carriers_rects where rect_id IN(select id from rects)) `b` where id is null;

我也尝试过反过来,因为老实说我有点困惑。

select id from rects where id IN(select rect_id from carriers_rects)

显然我不是 sql 天才。但很想在这里上学。不确定为什么会出现上述错误。

最佳答案

如果您更改为 update-join 语法而不是使用像这样的子查询会怎么样

update rects r
join carriers_rects cr on cr.rect_id = r.id
set r.case_id = cr.carrier_id
where cr.carrier_id is not null;

关于mysql UPDATE 说列不能为空。为什么它是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40976206/

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