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

Ich möchte die Lücken der gelöschten Zeilen wiederverwenden

Wirklich, das solltest du nicht. Primärschlüssel sollten rein technische, bedeutungslose Werte sein. Ihr Wert und die Monotonie der Generation sollten überhaupt keine Rolle spielen.

Da es sich um den PK der Zeile handelt, haben Sie möglicherweise Dutzende (oder Tausende) anderer Zeilen in anderen Tabellen, die auf diese ID (Fremdschlüssel) verweisen, sodass es nicht ausreichen würde, sie in der Tabelle zu ändern:Sie müssten sie ändern es überall.

Und es besteht eine gute Chance, dass diese ID auch in anderen Anwendungen referenziert wird (z. B. könnte sie Teil einer mit Lesezeichen versehenen URL in einem Browser sein), und eine Änderung ihres Werts würde alle diese Referenzen ungültig machen.

Sie sollten niemals einen Primärschlüssel ändern. Es sollte für immer unveränderlich sein.

EDIT:Ich habe die Frage falsch gelesen. Sie möchten eigentlich eine alte ID wiederverwenden. Das ist auch eine schlechte Idee. Vorhandene Referenzen würden auf etwas anderes verweisen, als sie ursprünglich referenziert haben. Das passiert, wenn Sie Ihre Telefonnummer ändern und sie von jemand anderem wiederverwendet wird, der anfängt, viele Anrufe von Leuten zu erhalten, die immer noch glauben, dass diese Telefonnummer Ihnen gehört. Sehr nervig. Sie möchten diese Situation vermeiden.