作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
使用替换为,如果我有两个字段。名字姓氏。如果我要运行 REPLACE INTO tblNames (FirstName, LastName) VALUES (John, Jones),表中有 John Smith这会用 Jones 代替 Smith,还是创建一个新名称?
什么决定它是更新还是插入?
最佳答案
REPLACE
INTO tblNames (FirstName, LastName)
VALUES ('John', 'Jones')
如果 FirstName
、LastName
或其组合存在任何类型的唯一约束,并且违反了该约束,记录将被删除并插入新值。
如果满足任何条件,记录将被替换:
FirstName
是 UNIQUE
并且表中有一个 John
,LastName
是 UNIQUE
并且表中有一个 Jones
,FirstName, Lastname
是 UNIQUE
并且表中有一个 John Jones
。请注意,REPLACE
操作是一个 INSERT
,它可能跟在 DELETE
之后,这将始终影响表格。
在较新版本的 MySQL
中,您应该使用 INSERT … ON DUPLICATE KEY UPDATE
。
关于SQL替换成问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2743451/
我是一名优秀的程序员,十分优秀!