我需要做一些简单的事情 - 在MySQL中插入一行(使用PHP),但没有值。 MySQL表已经具有所需的默认值,因此我不需要插入任何值。如果没有要插入的值,insert语句将如何显示?
答案 0 :(得分:49)
INSERT INTO my_table VALUES ()
答案 1 :(得分:11)
在SQL Server中就是这样。
insert into TableName default values
答案 2 :(得分:6)
正确的方法是提供一个空值列表,让字段隐式采用默认值:
INSERT INTO `table` () VALUES();
或者,您可以使用DEFAULT
关键字:
INSERT INTO `table` (`Col1`, `Col2`, ...) VALUES(DEFAULT, DEFAULT, ...);
或者(假设您为所有列提供值):
INSERT INTO `table` VALUES(DEFAULT, DEFAULT, ...);
所有必需的信息都可以在the documentation for INSERT
中找到:
如果没有为INSERT ... VALUES或指定列名列表 INSERT ... SELECT,表中每列的值必须是 由VALUES列表或SELECT语句提供。如果不这样做 知道表中列的顺序,使用DESCRIBE tbl_name来 找出来。
[..]
如果您没有在严格的SQL模式下运行,则任何列都不是显式的 给定值设置为其默认值(显式或隐式)。 For 例如,如果指定的列列表未指定所有列表 表中的列,未命名的列设置为其默认值。 第10.1.4节“数据类型”中描述了默认值赋值 默认值”。另请参见第1.8.6.2节“无效的约束” 数据”。
[..]
使用关键字DEFAULT将列显式设置为默认值 value。这使得编写分配的INSERT语句变得更容易 除了几列之外的所有值,因为它可以让您避免 写一个不包含值的不完整的VALUES列表 表格中的每一列。否则,你必须写出来 与VALUES列表中的每个值对应的列名列表。
[..]
如果列列表和VALUES列表都为空,则INSERT创建 每列设置为其默认值的行:
INSERT INTO tbl_name () VALUES();
[..]
在严格模式下,如果任何列没有默认值,则会发生错误 值。否则,MySQL使用任何隐式默认值 没有明确定义的默认值的列。
答案 3 :(得分:1)
您可以使用default values
:
insert YourTable default values