Sauf qu'un (select max(id) from table) ne fonctionnera que si tu lockes complètement la table à chaque fois. Sinon, ça te ramènera sans problème deux valeurs identiques dans deux transactions différentes dès que tu auras un certain débit de transactions.
C'est tout l'intérêt des séquences qui ne sont pas transactionnelles.
Ceci dit, un serial crée automatiquement une séquence associée _et_ la valeur par défaut qui va bien.
Pourquoi veux-tu préciser la valeur du champ dans ta requête ? Si tu ne le mets pas dans la requête, il prendra automatiquement la valeur par défaut. Je veux bien que _default_ soit utile parfois mais, là, je pense que tu peux t'en passer.
Et si jamais tu veux absolument mettre le _default_, pourquoi le mettre dans les paramètres alors que ça n'en est pas un ? Met le directement dans le texte de la requête.
[^] # Re: nextval()
Posté par Guillaume Smet (site web personnel) . En réponse au message PHP, PDO, Postgresql, SERIAL, et DEFAULT. Évalué à 1.
C'est tout l'intérêt des séquences qui ne sont pas transactionnelles.
Ceci dit, un serial crée automatiquement une séquence associée _et_ la valeur par défaut qui va bien.
Pourquoi veux-tu préciser la valeur du champ dans ta requête ? Si tu ne le mets pas dans la requête, il prendra automatiquement la valeur par défaut. Je veux bien que _default_ soit utile parfois mais, là, je pense que tu peux t'en passer.
Et si jamais tu veux absolument mettre le _default_, pourquoi le mettre dans les paramètres alors que ça n'en est pas un ? Met le directement dans le texte de la requête.