Je pige pas pourquoi
INSERT INTO message (id_message,text,lang,ref_type) VALUES ((select max(id_message) + 1 from message),'Berline',1,2);
n est pas accepté :/
Version imprimable
Je pige pas pourquoi
INSERT INTO message (id_message,text,lang,ref_type) VALUES ((select max(id_message) + 1 from message),'Berline',1,2);
n est pas accepté :/
1/ Quel est ton message d'erreur ?
2/ tu n'as pas besoin de faire ça, il suffit de mettre ton id en auto_increment
Cette requête peut être simplifiée en utilisant INSERT SELECT :Citation:
Code:
1
2 INSERT INTO message (id_message,text,lang,ref_type) VALUES ((select max(id_message) + 1 from message),'Berline',1,2);
Cependant, il est préférable de déclarer les identifiants des tables en tant que AUTO_INCREMENT.Code:
1
2
3 INSERT INTO message (id_message,text,lang,ref_type) SELECT max(id_message)+1, 'Berline', 1, 2 FROM message
La requête deviendrait alors :
Code:INSERT INTO message (text,lang,ref_type) VALUES('Berline',1,2)
En fait c'est que l id max que je voulais n'est pas un auto_increment mais c est pas grave ca me forcera a codé mon appli à la place d inseré à la main les données
Meme si le post est super vieux, je vais donner une soluce qui pourra sevir dans le meme type de cas
(dans ce cas, super pratique pour indéxer un champ de position qui ne peut être géré avec un auto-increment) :
En fait mêm si le 'AS nom_au_choix' ne parait pas utile dans 'FROM table AS nom_au_choix' il faut le mettre car sinon ça ne marche pasCode:INSERT INTO ma_table SET champ1=xxx, champ2=xxx, champ_position=(SELECT MAX(champ_position) FROM ma_table AS nom_au_choix)+1