当前位置: 首页 > 面试题库 >

mysql条件插入-如果不存在插入

陶锋
2023-03-14
问题内容

是否有只查询记录的查询,如果不存在,则插入?我不想重复更新或替换。寻找一个查询解决方案,寻找其他答案,但不是我真正想要的。

表:

name|value|id
------------------
phill|person|12345

伪查询:

IF NOT EXISTS(name='phill', value='person', id=12345) INSERT INTO table_name

问题答案:

使用REPLACE-与INSERT完全相同,不同之处在于,如果表中的旧行与PRIMARY
KEY或UNIQUE索引的新行具有相同的值,则在插入新行之前会删除该旧行。

http://dev.mysql.com/doc/refman/5.0/en/replace.html

-- For your example query
REPLACE INTO table_name(name, value, id) VALUES
('phill', 'person', 12345)

编辑:由于您不能使用REPLACE,另一个选择是:为表数据(主键,唯一性)设置约束索引并使用INSERT IGNORE

INSERT IGNORE INTO table_name
SET name = 'phill',
    value = 'person',
    id = 12345;


 类似资料:
  • 问题内容: 我在形成条件插入时遇到困难 我有x_table的列(实例,用户,项目),其中实例ID是唯一的。我只想在用户已经没有给定项目的情况下插入新行。 例如,尝试插入instance = 919191 user = 123 item = 456 朝正确方向的任何帮助或指导将不胜感激。 问题答案: 如果您的DBMS在执行插入操作时不限制从哪个表中选择,请尝试: 在这里,是一个只有一行的表(最初在O

  • 问题内容: 我从谷歌搜索开始,发现这篇文章讨论了互斥表。 我有一张约有1400万条记录的表。如果我想以相同的格式添加更多数据,是否有一种方法可以确保我要插入的记录在不使用一对查询的情况下就不存在(即,要检查的一个查询和要插入的一个查询是结果集是空的)? 字段上的约束是否可以确保如果该约束已经存在,该约束将失败? 似乎 只有 一个约束条件,当我通过php发出插入命令时,脚本就发出了嘎嘎叫声。 问题答

  • 问题内容: 我在使用SQL查询时遇到问题。如果同一行尚不存在,我需要插入一行。这是我到目前为止的内容: 我对sql不太熟悉,尤其是不存在的语法,因此在执行时会出现以下错误: ORA-06550:第37行,第11列:PLS-00103:在预期以下情况之一时遇到了符号“ INSERT”: 然后和或 用“ then”符号代替“ INSERT”继续。 following: the following: 问

  • 问题内容: 我正在尝试执行以下查询: 但这会返回错误。基本上,如果该记录的“名称”字段已经存在于另一条记录中,我不想插入一条记录-如何检查新名称是否唯一? 问题答案: 我实际上并不建议您这样做,因为Piskvor和其他人建议的索引是一种更好的方法,但是您实际上可以做您想做的事情: 插入一条记录: 尝试再次插入相同的记录: 插入其他记录: 等等… 更新: 为了防止在两个值相等的情况下出错,您必须命名

  • 问题内容: 如果存在,它就可以工作,但是如果不存在,我想将此数据作为新行插入。 更新 datenum是唯一的,但这不是主键 问题答案: Jai是正确的,您应该使用。 请注意,由于它是唯一键,因此不需要在update子句中包含datenum,因此它不应更改。您确实需要包括表中的所有其他列。您可以使用该函数来确保在更新其他列时使用正确的值。 这是使用适用于MySQL 的正确语法重写的更新:

  • 问题内容: 我从谷歌搜索开始,发现这篇文章讨论了互斥表。 我有一张约有1400万条记录的表。如果我想添加更多相同格式的数据,是否有一种方法可以确保在不使用一对查询的情况下我要插入的记录不存在(即,要检查的一个查询和要插入的一个是结果集是空)? 如果字段上存在约束,是否可以保证该约束将失败? 似乎 只有 一个约束,当我通过php发出插入命令时,脚本就发出了嘶哑的声音。 问题答案: 采用 见http: