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

Auto_increment-Werte in InnoDB?

Wenn Sie eine Fremdschlüsseleinschränkung haben, wie können Sie eine Zeile aus Tabelle A löschen, wenn Tabelle B auf diese Zeile verweist? Das scheint mir ein Fehler zu sein.

Unabhängig davon können Sie die Wiederverwendung von Auto-Increment-Werten vermeiden, indem Sie den Offset zurücksetzen, wenn Ihre Anwendung wieder hochfährt. Fragen Sie nach dem Maximum in allen Tabellen, die auf Tabelle A verweisen, und ändern Sie dann die Tabelle über diesem Maximum, z. Wenn das Maximum 989 ist, verwenden Sie Folgendes:

alter table TableA auto_increment=999;

Beachten Sie auch, dass verschiedene MySQL-Engines ein unterschiedliches Auto-Increment-Verhalten haben. Dieser Trick funktioniert für InnoDB.