如何插入没有任何值的行,以使所有列均采用默认值?

2021/01/30 19:21 · php ·  · 0评论

我需要做一些简单的事情-在MySQL中插入一行(使用PHP),但没有值。MySQL表已经具有所需的默认值,因此我不需要插入任何值。没有要插入的值时,insert语句将如何显示?

INSERT INTO my_table VALUES ()

在SQL Server中就是这样。

insert into TableName default values

正确的方法是提供一个空值列表,并让这些字段隐式采用其默认值:

INSERT INTO `table` () VALUES();

或者,您可以使用DEFAULT关键字:

INSERT INTO `table` (`Col1`, `Col2`, ...) VALUES(DEFAULT, DEFAULT, ...);

或者(假设您要为所有列提供值)只是:

INSERT INTO `table` VALUES(DEFAULT, DEFAULT, ...);

所有必需的信息都可以在以下文档中找到INSERT

如果未为INSERT ... VALUES或INSERT ... SELECT指定列名列表,则表中每一列的值都必须由VALUES列表或SELECT语句提供。如果您不知道表中各列的顺序,请使用DESCRIBE tbl_name进行查找。

[..]

如果您不是在严格的SQL模式下运行,则任何未明确指定值的列都将设置为其默认值(显式或隐式)。例如,如果指定的列列表未命名表中的所有列,则未命名的列将设置为其默认值。第10.1.4节“数据类型默认值”中介绍了默认值分配。另请参见第1.8.6.2节“对无效数据的约束”。

[..]

使用关键字DEFAULT可以将列明确设置为其默认值。这使编写INSERT语句(为少数几列除外)分配值变得更加容易,因为它使您避免编写不完整的VALUES列表,该列表不包含表中每一列的值。否则,您将不得不写出与VALUES列表中的每个值相对应的列名列表。

[..]

如果列列表和VALUES列表均为空,则INSERT将创建一行并将每一列设置为其默认值:

INSERT INTO tbl_name () VALUES();

[..]

在严格模式下,如果任何列都不具有默认值,则会发生错误。否则,MySQL对没有明确定义默认值的任何列使用隐式默认值。

您可以使用default values

insert YourTable default values
本文地址:http://php.askforanswer.com/ruhecharumeiyourenhezhidexingyishisuoyouliejuncaiyongmorenzhi.html
文章标签: ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!