执行插入查询而不插入任何行?

时间:2014-01-08 09:12:44

标签: mysql oracle

如何在不插入数据库中的任何行的情况下执行插入查询。

我尝试了这个,但这不起作用。

insert
into   table_name
values ()
;

2 个答案:

答案 0 :(得分:1)

要使用INSERT语句而不插入任何行,您可以执行以下操作:

INSERT INTO <table_name>
SELECT ... WHERE <any condition which will never be true>

MySQL 5.6.6 m9架构设置 - SQL Fiddle

CREATE TABLE Test (
  A INT PRIMARY KEY,
  B INT DEFAULT 42,
  C CHAR(20) DEFAULT 'Test'
);

INSERT INTO Test
SELECT * FROM Test WHERE 1 = 0;

Oracle 11g R2架构设置 - SQL Fiddle

CREATE TABLE Test (
  A NUMBER PRIMARY KEY,
  B NUMBER DEFAULT 42,
  C CHAR(20) DEFAULT 'Test'
);

INSERT INTO Test
SELECT * FROM Test WHERE 1 = 0;

答案 1 :(得分:0)

在SQL server中,它是

insert into table_name default values

来自MySQL文档:

如果列列表和VALUES列表都为空,INSERT会创建一行,每列设置为其默认值:

INSERT INTO tbl_name () VALUES();