插入没有值的表的语法?

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

MySQL关联表插入数据(insert into select语法)

MySQL对数据操作的一些深入语法

Mysql

我不知道我的表的 sql 语法 [关闭]

快速 SQL 问题:在 H2 中创建具有主键的表的正确语法?