描述我的表
id bigint unsigned NO PRI auto_increment
**tournament_id bigint YES**
created_at timestamp YES
updated_at timestamp YES
ALTER TABLE mytable
CHANGE tournament_id tournament_id BIGINT UNSIGNED NOT NULL;
收到错误,
Error Code: 1292. Incorrect datetime value: '0000-00-00 00:00:00' for column 'created_at' at row
当我尝试更改特定列的数据类型时,出现意外错误,显示其他列中存在错误。为什么我会收到此错误,请提供帮助。
谢谢
这是我尝试并解决问题的代码,
SET SQL_SAFE_UPDATES = 0;
UPDATE lounge_matches SET created_at = NULL WHERE created_at <= 0;
COMMIT;
SET SQL_SAFE_UPDATES = 1;
ALTER TABLE lounge_matches
CHANGE tournament_id tournament_id BIGINT UNSIGNED NULL COMMENT'FK: FK_LMT_TOURNAMENT_ID REFER TOURNAMENTS(ID)';
现在效果很好...
仍然无法理解场景。但是更新抛出错误字段的值可以很好地更改其他字段的数据类型。
我的Mysql版本是8.2.0,我在我的Windows PC上运行数据库服务器。 Mysql 端可能有 bug,不确定。
无论如何,它现在对我有用。
谢谢