Haben Sie darüber nachgedacht, die Datenbank so einzustellen, dass die Werte bei jedem Einfügen automatisch erhöht werden?
Nehmen Sie als Beispiel Yii2 Standard-Benutzertabelle. Das ID-Feld wird automatisch inkrementiert, und Sie müssen sich keine Sorgen darüber machen, es problematisch zu setzen. Jedes Mal, wenn Sie eine neue Insert-Engine senden, wird die Inkrement-ID von sich selbst gespeichert. Siehe Standardmigration unter "advanced template"\console\migrations\m130524_201442_int
. (Ihr Dateiname kann unterschiedlich sein, abhängig von der Yii2 Version)
$this->createTable('{{%user}}', [
'id' => $this->primaryKey(),
'username' => $this->string()->notNull()->unique(),
'auth_key' => $this->string(32)->notNull(),
'password_hash' => $this->string()->notNull(),
'password_reset_token' => $this->string()->unique(),
'email' => $this->string()->notNull()->unique(),
'status' => $this->smallInteger()->notNull()->defaultValue(0),
.........
], $tableOptions);
Wenn ‚id‘ auf Primärschlüssel Datenbank Einstellung kennt automatisch auto es zu erhöhen. Wenn Sie bereits eine Tabelle der ID-Feld haben, ist nicht Primärschlüssel Sie die followign Migration verwenden können:
$this->alterColumn('{{%databaseName}}', 'columnName', $this->integer()->notNull().' AUTO_INCREMENT');
können Sie es auch von Management-Konsole festlegen oder eine SQL-Abfrage ausführen. Abhängig von der Datenbank-Engine, die Sie verwenden, kann dies ein wenig anders aussehen, aber das Konzept ist das gleiche.
MYSQL:
In MySQL Workbench direkt in Frage klicken Sie auf Tabelle, wählen Sie Tabelle ändern und überprüfen NNm und AI neben Spalte Sie Autoinkrement möchten. See Screenshot
Oder laufen Befehl:
ALTER TABLE `dbName`.`nameOfTheTable` MODIFY `columnName` INT AUTO_INCREMENT NOT NULL;
Ich bin ein bisschen auf meine SQL rostig, also wenn es nicht zulassen, funktioniert es mich wissen, ich werde Sie mit der rechten Befehl erhalten.
Hoffe, das hilft. Viel Glück.
großartig !, das ist, was ich total brauche, großer Dank Sir – yosafat
Sie sind herzlich willkommen! –