J'ai une table code> code>, qui contient DDL Pour pourrait-il faire cela en faisant simplement insérer une fois? p> Il y a un ID code>,
log_string code> et
créé_at code>.
journaux code>: p>
log_string code> colonne est par Concat
ID code> et
et
créé_at code> et une chaîne, et je le fais en faisant deux fois insert: p>
last_insert_id () code> dans mysql mais non
this_insert_id () code>, une idée? P> p> p>
4 Réponses :
Vous souhaitez prendre le prochain ID d'insertion et l'horodatage lorsque la prochaine entrée de journal sera créée (créée_at). Ainsi, en d'autres termes, vous voulez avoir des entrées futures :)
Donc, non, ce n'est pas possible. Vous pouvez le prédire en regardant ce que l'ID actuel est et l'incrémentez-la par vous-même parce que c'est ce qui va être le prochain identifiant de journal probablement. Mais cette approche est très découragée car si vous gérez cette logique de table dans plusieurs endroits, vous ne savez jamais ce qui va être l'identifiant suivant autant de scripts changera le tableau sur les différents intervalles de temps. P> < P> Donc non, il n'y a aucun moyen de le faire dans une requête. Cependant, vous pouvez écrire un cron qui remplit la colonne Je n'ai pas testé la requête, C'est juste pour vous donner une idée. P> De cette façon, vous n'avez pas besoin d'exécuter une requête supplémentaire à chaque fois. Vous venez de le faire, une fois par jour ou donc pour un groupe d'entrées. P> J'espère que cela aide EM> P> P> P> log_string code> une fois par jour ou d'une manière similaire: p>
Il y a quelques façons de réaliser ce que vous voulez, mais ce n'est pas possible de manière pratique. Mais plus important encore, ce n'est pas nécessaire car vous avez déjà une pièce d'identité dans votre table.
Vous pouvez le formater via sprintf code> lorsque vous imprimez le journal. P>
sprintf('This is log %s (%s)', $id, $date);
Si votre identifiant est incrémentation automatique, il serait impossible d'atteindre ce que vous voulez sans au moins deux demandes.
Cependant, il serait intéressé si vous ajoutez un attribut personnalisé > À votre modèle et supprimer Log_string à partir de la table: P> Supprimer log_string em> colonne p> Ajoutez l'attribut Custorm à app \ log.php p> Mettez à jour votre table h3>
Mettez à jour votre modèle h3>
Accès aux données h3>
Duplicaté possible de Comment obtenir ID Suivant du champ autogénéré à Laravel pour une table spécifique?