假设我有一个 MySQL 表,其中包含三列:id
,a
并且b
名为的列id
是一个AUTO INCREMENT
字段。如果我将如下查询传递给 MySQL,它将正常工作:
REPLACE INTO `table` (`id`, `a`, `b`) VALUES (1, 'A', 'B')
但是,如果我跳过该字段id
,它将不再起作用,这是意料之中的。
ignore
我想知道查询中的某些字段是否有方法REPLACE
。所以上面的查询可能是这样的:
REPLACE INTO `table` (`a`, `b`) VALUES ('A', 'B')
为什么我需要这样的东西?
有时我需要使用查询检查数据库SELECT
以查看行是否存在。如果它存在,那么我需要UPDATE
现有的行,否则我需要INSERT
一个新的行。我想知道是否可以通过单个REPLACE
查询获得类似的结果(但不相同)。
为什么不能是同样的结果?仅仅是因为现有的行和新的行将REPLACE
丢失当前行并增加自动递增的值。相反,在查询中,字段将保持不变。DELETE
INSERT
primary key
UPDATE
primary key
AI
MySQL替换。