mysql - 错误 1364 (HY000):字段“名称”没有默认值
问题描述
我正在尝试将一列拆分为三个不同的列并将拆分值插入表中。
这是我正在使用的声明。
INSERT INTO table1 (X, Y, Z)
SELECT
SUBSTRING_INDEX(XYZ, "-", 1),
SUBSTRING_INDEX(SUBSTRING_INDEX(XYZ, "-", -2), "-", 1),
SUBSTRING_INDEX(SUBSTRING_INDEX(XYZ, "-", -1), "-", 2)
FROM table1;
但是我收到此错误:
ERROR 1364 (HY000): Field 'Name' doesn't have a default value
这对我来说没有多大意义,因为我根本没有调用“名称”字段。
我肯定知道选择语句本身就可以工作,但是插入似乎也不行。
如果有人有任何意见或建议,将不胜感激!
解决方案
显然,您有一个名为的列,该列name
已声明NOT NULL
且没有任何DEFAULT
值。 INSERT
插入新行,通常您需要部分或全部列的值。
我怀疑您真正想要的不是,INSERT
而是-连续UPDATE
更改值:
UPDATE table1
SET X = SUBSTRING_INDEX(XYZ, '-', 1),
Y = SUBSTRING_INDEX(SUBSTRING_INDEX(XYZ, '-', -2), '-', 1),
Z = SUBSTRING_INDEX(SUBSTRING_INDEX(XYZ, '-', -1), '-', 2);
推荐阅读
- postgresql - db 分区 vs 数据删除和导入
- python - PYTHON TKINTER 将焦点设置到下一行而不是下一个小部件
- pandas - 循环遍历 pandas 数据帧并将列表的结果分配给另一个数据帧
- scipy - 从另一个文件导入 scipy 时,我在实现用于 scipy 的最小平方优化的残差函数时遇到问题
- python - python 数学,我如何获得 2 个完整的盒子和 9 个部分的苹果问题
- android - 如何优化火箭的运动?
- android-notification-action - android,在什么情况下操作系统会在通知中创建动作按钮
- python-3.x - Pandas 查找带有关键字和括号的文本
- ionic-framework - 在设备上运行离子/电容器应用程序的命令是什么,并针对 android 和 ios 进行实时重新加载
- azure-devops - Azure DevOps Boards - 允许用户添加选项列表值?