我負責將一些舊代碼移植到新平臺上,而且我看着有點讓我非常困惑。我認爲我熟悉REPLACE INTO的功能,但這讓我感到不確定。 MySQL的查詢是:mySQL「REPLACE INTO」:它在這種情況下是否有任何作用
REPLACE INTO theTable SET value1 = ?, value2 = ?
我的理解是這隻有一個效果,如果這些列被定義爲唯一的。對於theTable表定義是這樣的:
CREATE TABLE `theTable` (
`value1` int(11) unsigned DEFAULT NULL,
`value2` int(11) unsigned DEFAULT NULL,
KEY `value1` (`value2`),
KEY `value2` (`value2`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
我插入的行是一個現有行的完全相同的副本,有沒有發生(新行插入,舊的行仍然存在)...我是否錯過了某些東西,或者原來的開發者是否做了一些完全沒用的事情?