Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Datensatz in Tabelle mit Position einfügen, ohne das Positionsfeld aller Datensätze zu aktualisieren

Ich würde das Datenbankdesign überdenken. Wenn Sie auf die Größenordnung von 10.000 Datensätzen beschränkt sind, ist dies nicht allzu schlimm, aber wenn dies unbegrenzt zunimmt, sollten Sie etwas anderes tun. Ich bin mir nicht sicher, was Sie tun, aber wenn Sie eine einfache Bestellung wünschen (vorausgesetzt, Sie machen nicht viel Traversal), dann können Sie eine prev_id haben und next_id Spalte, um Geschwisterbeziehungen anzuzeigen. Hier ist die Antwort auf Ihre Fragen:

update some_table 
set some_position = some_position + 1
where some_position > 5000 and some_position < 10000