par
mojorisin » 19 nov. 2008, 07:40
Bonjour,
il me semble que la seule solution pour effectuer ceci en une seule requete est d'utiliser une sous requete avec un insert .. select.
CREATE TABLE `table1` (
`id` int(5) NOT NULL auto_increment,
`nom` varchar(20) NOT NULL,
`ordre` int(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
INSERT INTO table1 SELECT NULL,'sffsf',COALESCE(MAX(ordre),0)+1 FROM table1
Le coalesce est la pour éviter d'enregistrer un ordre à 0 si la table est vide.
Peut-être qu'une solution plus simple est disponible...
Bonjour,
il me semble que la seule solution pour effectuer ceci en une seule requete est d'utiliser une sous requete avec un insert .. select.
CREATE TABLE `table1` (
`id` int(5) NOT NULL auto_increment,
`nom` varchar(20) NOT NULL,
`ordre` int(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
INSERT INTO table1 SELECT NULL,'sffsf',COALESCE(MAX(ordre),0)+1 FROM table1
Le coalesce est la pour éviter d'enregistrer un ordre à 0 si la table est vide.
Peut-être qu'une solution plus simple est disponible...