MySQL CREATE TABLE FROM UNION给出“无效的默认值”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL CREATE TABLE FROM UNION给出“无效的默认值”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1007字,纯文字阅读大概需要2分钟。
内容图文
![MySQL CREATE TABLE FROM UNION给出“无效的默认值”](/upload/InfoBanner/zyjiaocheng/904/94fafc1501f447449989ae271d4f46ca.jpg)
我在InnoDB MySQL数据库中有一个简单的表:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
我想使用union进行查询并将结果存储在临时表中.我把它简化为以下内容:
CREATE TEMPORARY TABLE IF NOT EXISTS result AS
SELECT * FROM test
UNION
SELECT * FROM test
我这样添加数据:
INSERT INTO test (`date`) VALUES ('2017-09-01');
MySQL的响应是
Error Code: 1067. Invalid default value for 'date'
>添加默认值没有帮助(日期日期NOT NULL DEFAULT’2017-09-06′).
>没有UNION和第二个SELECT它可以工作.
>使用UNION ALL也可以工作(但这不是我需要的).
>用例如DATE列替换DATE列VARCHAR也有效.
根据我的阅读,1067与安装问题有关,这在这种情况下很奇怪.
为了让这个工作,我该怎么办?
解决方法:
这似乎是MySQL中的一个错误.该查询在5.6.25和5.7.12版本中有效,但在5.7.17和5.7.19版本中没有.所以我认为这必须是最近引入的错误. (报告在这里:https://bugs.mysql.com/bug.php?id=87711)感谢Thorsten的暗示.
编辑:
在我的系统上所有5.7.版本有问题(是的,我尝试了所有;)).我无法回到5.6.所以我切换到MariaDB,我只能推荐!
内容总结
以上是互联网集市为您收集整理的MySQL CREATE TABLE FROM UNION给出“无效的默认值”全部内容,希望文章能够帮你解决MySQL CREATE TABLE FROM UNION给出“无效的默认值”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。