MySQL 中的 INSERT 和 UPDATE 有啥区别?

Posted

技术标签:

【中文标题】MySQL 中的 INSERT 和 UPDATE 有啥区别?【英文标题】:What are differences between INSERT and UPDATE in MySQL?MySQL 中的 INSERT 和 UPDATE 有什么区别? 【发布时间】:2011-01-01 10:19:18 【问题描述】:

似乎INSERTUPDATE 对我做同样的事情。

在什么情况下我应该使用INSERT 而不是UPDATE,反之亦然?

【问题讨论】:

如果你真的相信:1)创建一个表,2)立即运行一个UPDATE语句3)从表中选择*。 【参考方案1】:

在CRUD operations 中,INSERT 是“C”,UPDATE 是“U”。它们是持久存储的四个基本功能中的两个。另外两个是SELECTDELETE。至少没有这四个操作,一个典型的数据库系统不能被认为是完整的。

使用INSERT 插入一条新记录。

使用UPDATE 更新现有记录。

【讨论】:

为什么不能直接插入现有记录。也许 SQL 不允许这样做,但它们不就等同于同一件事吗? 在 CQL 中(不是 mysql),您可以将数据插入到现有数据中。但主键必须相同。【参考方案2】:

您不能更新不在表中的行。

您不能插入已经在表中的行。

【讨论】:

如果您需要将数据添加到可能有数据也可能没有数据的列中怎么办?是否有强制插入模式,或某种 INSERT-UPDATE 混合模式? 在mysql中,我们有EXISTS关键字和IFNULL关键字来检查引用的数据是否处于某种状态。它看起来像 INSERT INTO table_name IFNULL follower by UPDATE table_name IF EXISTS。这种方法可能需要更多的线路而不是理想的,老实说可能有更好的解决方案,但至少它会起作用【参考方案3】:

Insert 用于向表中添加数据,update 用于更新表中已有的数据。

【讨论】:

【参考方案4】:

UPDATE 语句可以使用 WHERE 子句,但 INSERT 不能。

【讨论】:

这不是真的。在docs.microsoft.com/en-us/sql/t-sql/statements/…有使用 WHERE 的 INSERT 示例【参考方案5】:

插入用于将新记录放入表中。而更新使您能够修改插入的记录,例如修改数据类型等。

【讨论】:

【参考方案6】:

插入对于在空白行中插入新记录很有用。 而 Update 可用于更新非空白行。

【讨论】:

以上是关于MySQL 中的 INSERT 和 UPDATE 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

为啥必须将表中的至少一列(在 MySQL 中)分配为 PRIMARY KEY,以便表通过 JDBC 接受 UPDATE 和 INSERT 语句?

update和insert的区别

mysql远程执行select,insert into都可以,update执行不了,本机update却可以。

MySQL中INSERT,UPDATE和REPLACE的区别与用法

mysql笔记(10)-数据的插入和更新(insert/update/case)

MySQL如何创建一个触发器,功能是在一张表中insert一条数据,另一张表中的数据相应地进行update。