我已经使用phpMyAdmin创建了一个包含一些NOT NULL列的表。
CREATE TABLE `TEST` (`ID` INT PRIMARY KEY AUTO_INCREMENT,
`Firstname` VARCHAR(20) NOT NULL,
`Lastname` VARCHAR(20) NOT NULL)
INSERT操作没有问题。数据库阻止正确设置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)
但是在我成功地创建了一个具有非NULL字段的记录之后,数据库允许我将这些字段更新为NULL。
UPDATE `TEST` SET `Lastname`=NULL WHERE `ID` = 1
1 row affected. (Query took 0.0006 sec)
我也试过“NULL”和“NULL”,但是数据库把它们作为字符串放在字段中。
我对这个问题感到很困惑。这是phpMyAdmin的bug还是我做错了什么?
2条答案
按热度按时间jckbn6z71#
在安装时,不能将SQL_MODE设置为strict。
问题
或添加
下的文件复制到您的文件中
要找到我的.cnf,请查看MySQL配置文件
C:\xampp\mysql\bin\my.ini.
在该文件的顶部有一些注解:
在那里它告诉你在哪里可以找到你的
my.cnf
文件。如有必要,请重新启动mysql。
polhcujo2#
也许你有权限通过phpMyAdmin修改SQL模式。进入phpMyAdmin的主页,点击Variables,在过滤器中输入“SQL模式”。然后你可以通过问号访问一些解释,点击这一行,你可以编辑SQL模式的值并保存。
不过,这只是为了测试目的,一旦服务器重新启动,该设置将恢复到其原始值;因此需要更改配置文件。