[mysql]
# Je crée une table
DROP TABLE IF EXISTS `testReplace`;
CREATE TABLE `testReplace` (
`id` int(10) unsigned NOT NULL auto_increment,
`a` int(11) default '1',
`b` int(11) default '2',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
#J'y ajoute 2 records /lignes/tuples
INSERT into `testReplace`
(`a`, `b`)
values
(1, 1),(2,2);
SELECT * FROM `testReplace`;
id | a | b
============
1 | 1 | 1
2 | 2 | 2
[mysql]
#Je remplace la première valeur de la première ligne
REPLACE into `testReplace`
SET `id`=1, a=3;
# que vaut b ?
[mysql]
SELECT * FROM `testReplace`;
id | a | b
============
1 | 3 | 2
2 | 2 | 2
B a repris sa valeur par défaut
En pratique cela veut dire que si on fait un replace et qu'on ne
précise pas toutes les colonnes les colonnes non-spécifiées
prennent la valeur par défaut alors qu'on peut s'attendre à …
[Lire plus]