我的表(名称是主键,id是唯一键):
|| name || id || col_1 ||
===================================
|| test1 ||1234|| test999 ||
查询:
REPLACE INTO `table` (`name`, `col_1`) VALUES ('NOTTEST1', 'test999').
在这种情况下,它不能替换 row,但它确实会替换。我做错了什么?
最佳答案
效果很好!
您可以检查一下表结构是否设置正确。这是我所做的:
表:
CREATE TABLE `test` (
`name` varchar(25) NOT NULL,
`id` int(11) DEFAULT NULL,
`col_1` varchar(25) DEFAULT NULL,
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
insert into `test`(`name`,`id`,`col_1`) values ('test1',1234,'test999');
当我尝试这个时:
REPLACE INTO test (`name`,`col_1`) VALUES('test11','admin');
它创造了一个新记录。
关于MySQL REPLACE 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33745030/