假设我有一个 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丢失当前行并增加自动递增的值。相反,在查询中,字段将保持不变。DELETEINSERTprimary keyUPDATEprimary keyAI
MySQL替换。