首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL升级会导致INSERT语句中断吗?

问MySQL升级会导致INSERT语句中断吗?
EN

Stack Overflow用户
提问于 2017-08-15 02:48:43
回答 1查看 60关注 0票数 0

我升级了我的Mac,从而升级了我的MySQL版本。现在,这个来自受信任PHP书籍的插入示例会产生一个错误。以前不是这样的。为什么?

我从MySQL版本5.6.36转到5.7.19。MySQL版本的更改会导致插入中断吗?

这是“PHP开发”一书中的一个例子。

这是数据库:

代码语言:javascript
复制
DESCRIBE customers;
+------------+------------------+------+-----+---------+----------------+
| Field      | Type             | Null | Key | Default | Extra          |
+------------+------------------+------+-----+---------+----------------+
| customerid | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name       | char(50)         | NO   |     | NULL    |                |
| address    | char(100)        | NO   |     | NULL    |                |
| city       | char(30)         | NO   |     | NULL    |                |
+------------+------------------+------+-----+---------+----------------+

这是从Bash终端发出的插入:

代码语言:javascript
复制
INSERT INTO customers (name, city) values ('Melissa Jones', 'Nar Nar Goon North');

此错误:

错误1364 (HY000):字段'address‘没有默认值

在通过PHP运行查询时,我会得到这个错误

警告: mysqli_query():在/Users/膝上型计算机/站点/.

我错过了什么或者做错了什么?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-15 03:00:51

NULL -每行必须包含该列的值,不允许空值

table.asp

正如@Barmar所指出的,address字段具有NOT NULL属性,在插入行时应该包含值。

代码语言:javascript
复制
INSERT INTO customers (name, address, city) values ('Melissa Jones', 'the_address', 'Nar Nar Goon North');

在编写脚本时,有可能生成一个额外的NOT,它应该是:

代码语言:javascript
复制
CREATE TABLE customers (
customerid INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name CHAR(50) NOT NULL,
address CHAR(100) NULL,
city CHAR(30) NOT NULL
) 

注意:将name、city和address作为CHAR类型字段是不好的。阅读这里的原因:https://dev.mysql.com/doc/refman/5.7/en/char.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45685816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档