在MySQL中,
然而,它插入时却用相同的
REPLACE INTO
函数的作用是删除并插入行。在我的表中,主键(id
)是自增的,因此我期望它会删除然后插入一个带有id
在数据库尾部的表。然而,它插入时却用相同的
id
!这是预期的行为吗?还是我有什么遗漏了?(我在调用REPLACE INTO
语句时没有设置id
)
CREATE TABLE test (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) NOT NULL UNIQUE, value VARCHAR(200) NOT NULL); REPLACE INTO test (name, value) VALUES ('foo','bar'); REPLACE INTO test (name, value) VALUES ('foo','baz'); SELECT id FROM test;
返回结果为2,而不是1 - 似乎id
已经被增加了两次。(编辑:在InnoDB和MyISAM下进行测试) - lanzzid
列分配一个值。但这非常不寻常。 - spencer7593