Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5.6版本timestamp设置默认值为NULL时检查不通过 #680

Open
nieen opened this issue Sep 29, 2024 · 1 comment
Open

5.6版本timestamp设置默认值为NULL时检查不通过 #680

nieen opened this issue Sep 29, 2024 · 1 comment

Comments

@nieen
Copy link

nieen commented Sep 29, 2024

描述
SQL上线功能中,SQL语句:ALTER TABLE t_fxr_datapath ADD COLUMN deleted_at timestamp NULL DEFAULT NULL;
在对5.6版本的mysql进行SQL检查时,提示:Invalid default value for column 'deleted_at'.
但是在5.7版本中可以检查通过。
预期在5.6、5.7版本的实例都可以支持这种写法。

看到作者 @hanchuanchuan#406 中对SQL版本做了判断,请问为什么使得5.6版本的实例上不支持这样timestamp NULL DEFAULT NULL的语法,这样的设计是有什么其他的考虑吗

辛苦有了解的同学可以帮忙解惑。

重现
SQL上线功能,选择5.6版本的mysql实例,必现。

环境

  • 数据库: [mysql]
  • 版本: [5.6.41-log]

参数
可能与问题相关的设置参数

@nieen
Copy link
Author

nieen commented Sep 29, 2024

看这一部分代码逻辑功能,以及参考注释含义
image
注释中描述“有默认值,且为NULL,且有NOT NULL约束,如(not null default null)”,那此处条件应该是notNullFlag,而不是!notNullFlag
@hanchuanchuan 辛苦请看下我的理解是否正确

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant