我使用phpMyAdmin创建了一个包含一些非空列的表。
CREATE TABLE `TEST` (`ID` INT PRIMARY KEY AUTO_INCREMENT,
`Firstname` VARCHAR(20) NOT NULL,
`Lastname` VARCHAR(20) NOT NULL)
插入操作没有问题。数据库防止正确设置空字段。
INSERT INTO `TEST`(`Firstname`, `Lastname`) VALUES ("Peter", null)
#1048 - Column 'Lastname' cannot be null
公认的是:
INSERT INTO `TEST`(`Firstname`, `Lastname`) VALUES ("Peter", "Smith")
1 row inserted.
Inserted row id: 1 (Query took 0.0004 sec)
但是在我成功地创建了一个包含非空字段的记录之后,数据库允许我将这些字段更新为空。
UPDATE `TEST` SET `Lastname`=NULL WHERE `ID` = 1
1 row affected. (Query took 0.0006 sec)
我也尝试过"NULL“和”NULL“,但数据库将它们作为字符串放入字段中。
我对这个问题真的很困惑。这是phpMyAdmin错误还是我做错了什么?
发布于 2013-09-02 09:19:25
在安装过程中,不能将SQL_MODE设置为strict。
问题
SET SQL_MODE='STRICT_ALL_TABLES'
或添加
SQL_MODE='STRICT_ALL_TABLES'
在[mysqld]
下进入您的my.cnf
要查找my.cnf,请查看MySQL配置文件C:\xampp\mysql\bin\my.ini.
在该文件的顶部是一些注释:
# 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。
发布于 2013-09-03 00:05:27
也许您有权通过phpMyAdmin更改SQL模式。转到phpMyAdmin的主页(起始),然后单击Variables并在过滤器中进入"SQL mode“。然后您可以通过问号访问一些解释,通过单击此行,您可以编辑SQL模式的值并保存它。
但是,这仅用于测试目的,一旦服务器重新启动,该设置将恢复为其原始值;因此需要更改配置文件。
https://stackoverflow.com/questions/18564480
复制相似问题