首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >phpMyAdmin接受NOT NULL字段中的NULL

phpMyAdmin接受NOT NULL字段中的NULL
EN

Stack Overflow用户
提问于 2013-09-02 09:10:57
回答 2查看 11.4K关注 0票数 2

我使用phpMyAdmin创建了一个包含一些非空列的表。

代码语言:javascript
运行
复制
CREATE TABLE `TEST` (`ID` INT PRIMARY KEY AUTO_INCREMENT, 
                     `Firstname` VARCHAR(20) NOT NULL, 
                     `Lastname` VARCHAR(20) NOT NULL)

插入操作没有问题。数据库防止正确设置空字段。

代码语言:javascript
运行
复制
INSERT INTO `TEST`(`Firstname`, `Lastname`) VALUES ("Peter", null)

#1048 - Column 'Lastname' cannot be null

公认的是:

代码语言:javascript
运行
复制
INSERT INTO `TEST`(`Firstname`, `Lastname`) VALUES ("Peter", "Smith")

1 row inserted. 
Inserted row id: 1 (Query took 0.0004 sec)

但是在我成功地创建了一个包含非空字段的记录之后,数据库允许我将这些字段更新为空。

代码语言:javascript
运行
复制
UPDATE `TEST` SET `Lastname`=NULL WHERE `ID` = 1

1 row affected. (Query took 0.0006 sec)

我也尝试过"NULL“和”NULL“,但数据库将它们作为字符串放入字段中。

我对这个问题真的很困惑。这是phpMyAdmin错误还是我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2013-09-02 09:19:25

在安装过程中,不能将SQL_MODE设置为strict。

问题

代码语言:javascript
运行
复制
SET SQL_MODE='STRICT_ALL_TABLES'

或添加

代码语言:javascript
运行
复制
SQL_MODE='STRICT_ALL_TABLES'

[mysqld]下进入您的my.cnf

要查找my.cnf,请查看MySQL配置文件C:\xampp\mysql\bin\my.ini.

在该文件的顶部是一些注释:

代码语言:javascript
运行
复制
# You can copy this file to
# C:/xampp/mysql/bin/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is C:/xampp/mysql/data) or
# ~/.my.cnf to set user-specific options.

它会告诉你在哪里可以找到你的my.cnf文件。

如有必要,请重新启动mysql。

票数 0
EN

Stack Overflow用户

发布于 2013-09-03 00:05:27

也许您有权通过phpMyAdmin更改SQL模式。转到phpMyAdmin的主页(起始),然后单击Variables并在过滤器中进入"SQL mode“。然后您可以通过问号访问一些解释,通过单击此行,您可以编辑SQL模式的值并保存它。

但是,这仅用于测试目的,一旦服务器重新启动,该设置将恢复为其原始值;因此需要更改配置文件。

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

https://stackoverflow.com/questions/18564480

复制
相关文章

相似问题

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