昨天我问了这个问题:如果在mysql中插入语句并且答案很好用。问题是,如果值不存在,我需要在表中插入一行。FE
If('x' NOT EXIXTS in (select campoX from table) then
insert into table (...) values (...) etc.
我能怎么做?在互联网上我找不到答案:(
我假设您的表名为tbl。
INSERT INTO tbl (campoX )
SELECT 'X' FROM DUAL
WHERE NOT EXISTS(
SELECT campoX from tbl
WHERE campoX ='X'
);
DUAL
纯粹是为了方便那些要求所有SELECT语句都应该包含FROM以及可能包含其他子句的人们。MySQL可能会忽略这些子句。如果没有引用表,MySQL不需要FROM
DUAL。
如其他提到的那样,INSERT IGNORE
如果您的campoX是唯一或主键字段,则可以在此处使用语句。
我有一个SQLite数据库。我试图在表
问题内容: 嗨,我想运行一个if语句,但是在我所有的AS别名附近都会不断出现语法错误,我在做什么错? 问题答案: 有两个问题。缺少BEGIN以及SELECT都需要在每个IF语句内。您不能在SELECT中包含内联IF,如果需要执行此操作,则可以使用CASE语句。
问题内容: 我想每次插入带有日期+ 1的行。这是一个简单的SQL循环。我正在使用SSIS,因此StartDate和Enddate是变量。 这是我的代码: 错误信息: 消息156,级别15,状态1,行11关键字’select’附近的语法错误。 问题答案: 无需在声明。 代替 和
问题内容: 我在使用SQL查询时遇到问题。如果同一行尚不存在,我需要插入一行。这是我到目前为止的内容: 我对sql不太熟悉,尤其是不存在的语法,因此在执行时会出现以下错误: ORA-06550:第37行,第11列:PLS-00103:在预期以下情况之一时遇到了符号“ INSERT”: 然后和或 用“ then”符号代替“ INSERT”继续。 following: the following: 问
问题内容: 我正在尝试向表中插入其他行,该表要求从另一个表中检索一个值。以下是查询示例: 表的结构为。 我知道以上查询是错误的。有没有办法在插入行时从其他表中检索1个值? 问题答案: 一些DBMS会接受以下内容,并在SELECT语句的周围加上括号: