插入没有值的表的语法?
Posted
技术标签:
【中文标题】插入没有值的表的语法?【英文标题】:Syntax for INSERTing into a table with no values? 【发布时间】:2011-01-10 00:34:32 【问题描述】:我有一个使用以下架构创建的表:
CREATE TABLE [dbo].[Visualizations]
(
VisualizationID int identity (1,1) NOT NULL
)
由于表格没有可设置的字段,我不确定如何插入记录。我试过了:
INSERT INTO [Visualizations];
INSERT INTO [Visualizations] () VALUES ();
都不行。这样做的正确语法是什么?
编辑:由于许多人似乎对我的表感到困惑,因此它纯粹用于表示许多子表的父级...每个子表都通过 FK 引用该表,并且每个这些 FK 中的一部分是 PK,因此在所有这些表中,ID 都是唯一的。
【问题讨论】:
你的桌子很合适。 不难想到其他只有默认值的插入才有意义的表,这是让我来到这里的那个:CREATE TABLE run (id INTEGER PRIMARY KEY AUTOINCREMENT, start_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, end_time TIMESTAMP)
。当然,当我的应用程序开始运行时,我必须插入一条具有默认值的记录,并在它结束时更新end_time
。
【参考方案1】:
参见this(示例“F. 使用默认值选项加载数据”):
INSERT INTO [Visualizations] DEFAULT VALUES;
【讨论】:
非常简单……新链接here。 也可以在 SQLite 中使用。【参考方案2】:用 null 触发标识插入
insert into
Visualizations
values
(null);
【讨论】:
在 SQL Server 中,使用 TSQL,此语句给出错误:“DEFAULT 或 NULL 不允许作为显式标识值。”【参考方案3】:也许您需要添加一个虚拟列来执行此操作,只需将NULL
插入其中,虚拟列将允许 NULL。尽管您的表结构没有意义,但我建议这样做以使其正常工作。
【讨论】:
以上是关于插入没有值的表的语法?的主要内容,如果未能解决你的问题,请参考以下文章
sql 显示有关如何创建其ID随插入的每个新记录而增加的表的语法和注释。代码取自:http://www.w3schoo