In MySql besteht das Problem, dass Spalten nicht auf automatische Inkrementierung eingestellt werden können
P粉998100648
P粉998100648 2023-08-22 16:23:53
0
2
584
<p>Ich habe eine Tabelle namens „Bestelling“ mit 4 Spalten: „Id“ (Primärschlüssel), „KlantId“, „Datum“, „BestellingsTypeId“, jetzt möchte ich, dass die Spalten-ID automatisch erhöht wird, aber wann Wenn ich das versuche, erhalte ich die folgende Fehlermeldung: </p> <pre class="brush:php;toolbar:false;">FEHLER 1062: ALTER TABLE verursachte eine Neuordnung der automatischen Inkrementierung, was zu einem doppelten Eintrag „1“ für den Primärschlüssel „PRIMARY“ führte. SQL-Anweisung: ALTER TABLE `aafest`.`aafest_bestelling` CHANGE COLUMN `Id` `Id` INT(11) NOT NULL AUTO_INCREMENT FEHLER: Beim Ausführen des Rollback-Skripts ist ein Fehler aufgetreten. Einzelheiten finden Sie weiter unten. FEHLER 1046: Keine Datenbank ausgewählt SQL-Anweisung: TABELLE „aafest_bestelling“ ERSTELLEN ( `Id` int(11) NICHT NULL, `KlantId` int(11) DEFAULT NULL, „Datum“-Datum STANDARD NULL, `BestellingstypeId` int(11) DEFAULT NULL, PRIMÄRSCHLÜSSEL („Id“) ) ENGINE=InnoDB DEFAULT CHARSET=latin1</pre> <p>Hat jemand irgendwelche Ideen? </p>
P粉998100648
P粉998100648

Antworte allen(2)
P粉391677921

当我尝试将一列转换为auto_increment时,我也遇到了这个问题,其中一行的值为0。一个替代的方法是通过设置:

SET SESSION sql_mode='NO_AUTO_VALUE_ON_ZERO';

来为会话设置。

这样可以将该列更改为带有零ID的auto_increment。

零并不理想,我也不建议在auto_increment列中使用它。不幸的是,它是继承的数据集的一部分,所以我暂时无法更改它。

最好在之后清除设置(以及其他设置):

SET SESSION sql_mode='';

尽管在当前客户端会话关闭时会被清除。

关于'NO_AUTO_VALUE_ON_ZERO'设置的完整详情在这里

P粉146080556

如果表中包含一个id为0(或负数)的现有记录,就会发生这种情况。将所有现有记录更新为使用正值将允许在该列上设置auto_increment。

编辑:有些人问如何出现了0。为了澄清,MySQL参考手册指出,“对于数值类型,默认值为0,但对于带有AUTO_INCREMENT属性的整数或浮点数类型,默认值为序列中的下一个值。”因此,如果在启用auto_increment之前在表上执行插入操作而没有为数值列提供值,则在插入期间将使用默认值0。更多详细信息可在https://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html找到。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!