因此,这似乎很简单,我发誓我以前做过,但是出于某种原因,它对我不起作用。
我正在使用MAMP
并有一个包含约200列的表,如果要向其中插入NULL或空数据,我希望其中约20列默认为0。
这是一个小例子,说明我的表的外观以及我要默认设置为0的列所执行的操作。
CREATE TABLE `listings` (
`ListingID` int(11) NOT NULL,
`BathsFull` int(6) NOT NULL DEFAULT '0',
PRIMARY KEY (`ListingID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
因此请注意,BathsFull
我将其设置为NOT NULL DEFAULT '0'
问题是,当将空数据传递给它时,出现SQL错误SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'BathsFull' cannot be null
。
我也尝试过将BathsFull accepts
NULL
and
DEFAULT‘0’设置为空,但是当传递空数据时,该表将显示,NULL
而不是0
。
我在这里想念什么吗?我需要编写某种触发器吗?如果不需要,我不想在将脚本中的数据放入数据库之前对其进行清理。
您绝对可以为此使用触发器
假设您将该字段设置为可空
CREATE TABLE `listings` (
`ListingID` int(11) NOT NULL,
`BathsFull` int(6), <-----
PRIMARY KEY (`ListingID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
扳机
DELIMITER $$
CREATE TRIGGER tg_lst_insert BEFORE INSERT ON listings
FOR EACH ROW
BEGIN
SET NEW.BathsFull = IFNULL(NEW.BathsFull, 0);
END $$
DELIMITER ;
插入一些行
INSERT INTO `listings` VALUES(1, '');
INSERT INTO `listings` VALUES(3, 'a');
INSERT INTO `listings` VALUES(4, NULL);
INSERT INTO `listings` (ListingID) VALUES(2);
INSERT INTO `listings` VALUES(5, 3);
结果
+-----------+-----------+
| ListingID | BathsFull |
+-----------+-----------+
| 1 | 0 |
| 2 | 0 |
| 3 | 0 |
| 4 | 0 |
| 5 | 3 |
+-----------+-----------+
本文向大家介绍如何在MySQL ENUM数据类型中插入默认值?,包括了如何在MySQL ENUM数据类型中插入默认值?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助ENUM数据类型的DEFAULT属性来实现。如果未指定值,则DEFAULT属性会使ENUM数据类型具有默认值。换句话说,我们可以说INSERT语句不必为此字段包含值,因为如果不包含该值,那么将插入DEFAULT之后的值。DEFA
问题内容: 我正在使用Spring MVC(版本3.1),Hibernate(版本3.5)和MySQL开发应用程序。在此应用程序中,每次应用程序运行时,我都会创建一个数据库架构。我想使用import.sql脚本文件在一些表中插入一些默认数据。为此,我在根目录中创建了import.sql脚本,并在hibernate状态下使用了以下语句。cfg。xml文件。 但是我没有成功将默认数据插入表中。 请指导
问题内容: 从Python脚本向MySQL插入一些数据时,出现一个奇怪的错误。这基本上与我要插入的变量为空有关。我认为MySQL不喜欢空白变量,但是还有其他我可以将其更改为可以与我的insert语句一起使用的东西吗? 我可以成功地使用一条语句将其设置为0(如果为空),但这可能会弄乱我计划稍后在MySQL中进行的某些数据分析。有没有办法将其转换为或某种方式,以便MySQL接受但不添加任何内容? 问题
本文向大家介绍在MySQL中仅使用默认值插入行,包括了在MySQL中仅使用默认值插入行的使用技巧和注意事项,需要的朋友参考一下 在创建表时使用DEFAULT关键字,只要您不为该列提供值,它将插入默认值。 让我们首先创建一个表。在这里,对于ClientAge,我们设置了默认值24:首先让我们创建一个表。在这里,对于ClientAge,我们设置了默认值24- 使用insert命令在表中插入一些记录。对
问题内容: 我有使用UUID的表。我希望能够插入有或没有UUID的新行,因为有时客户端有时会生成UUID。 每个表的核心是这样的: 我正在尝试使用一个函数来插入行。我希望能够提供一个NULL ID并获取默认值(生成的UUID)。我有这样的事情: 我已经试过了: 还有这个: 这有效,但是重复了gen_random_uuid()代码: 同样也可以,但是存在相同的问题: 有没有一种方法可以不必重复执行代
问题内容: 我在一个网站上有一个表格,该表格有很多不同的领域。一些字段是可选的,而某些字段是必填的。在我的数据库中,我有一个包含所有这些值的表,是否将NULL值或空字符串插入用户未放置任何数据的DB列中是更好的做法? 问题答案: 通过使用,您可以区分“不输入数据”和“不输入数据”。 更多区别: 一个的就是,一个空字符串的是。 s在空字符串之前排序。 将计算空字符串,但不计算s 您可以使用绑定变量搜