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 【问题描述】:似乎INSERT
和UPDATE
对我做同样的事情。
在什么情况下我应该使用INSERT
而不是UPDATE
,反之亦然?
【问题讨论】:
如果你真的相信:1)创建一个表,2)立即运行一个UPDATE语句3)从表中选择*。 【参考方案1】:在CRUD operations 中,INSERT
是“C”,UPDATE
是“U”。它们是持久存储的四个基本功能中的两个。另外两个是SELECT
和DELETE
。至少没有这四个操作,一个典型的数据库系统不能被认为是完整的。
使用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 语句?
mysql远程执行select,insert into都可以,update执行不了,本机update却可以。
MySQL中INSERT,UPDATE和REPLACE的区别与用法