如何向无需手动提供任何字段值的SQL数据表中插入记录
所有字段为自增列或带默认值的表插入方法
示例表说明
你给出的是SQL Server环境下的订单表,结构及字段含义如下:
CREATE TABLE Orders ( OrderId INT IDENTITY(1,1) PRIMARY KEY, -- 订单ID,自增主键,初始值1,步长1 PlacetAt TIME DEFAULT CONVERT(VARCHAR(10), GETDATE(), 108), -- 下单时间,默认取当前时间的时分秒 PlacetOn DATE DEFAULT GETDATE(), -- 下单日期,默认取当前系统日期 Total MONEY DEFAULT 0 -- 订单总金额,默认值为0 )
插入操作方案
SQL Server 环境
直接使用DEFAULT VALUES关键字即可完成无参插入,所有字段会自动取定义的默认值或自增值:
INSERT INTO Orders DEFAULT VALUES;
如果需要批量插入多条,可配合批处理语法实现:
INSERT INTO Orders DEFAULT VALUES; GO 20 -- 连续执行20次插入,生成20条全默认值的订单记录
其他主流数据库兼容写法
- MySQL:支持
DEFAULT VALUES语法,也可使用INSERT INTO 表名 () VALUES ();的空参数写法 - PostgreSQL:除
DEFAULT VALUES外,还可加RETURNING *直接返回插入后的完整记录:INSERT INTO 表名 DEFAULT VALUES RETURNING *; - Oracle:对应语法为
INSERT INTO 表名 VALUES (DEFAULT);
内容的提问来源于stack exchange,提问作者Ren
相关产品推荐
相关产品推荐

