Heim  >  Artikel  >  Datenbank  >  So suchen Sie nach automatisch inkrementierenden Spalten in MySQL

So suchen Sie nach automatisch inkrementierenden Spalten in MySQL

coldplay.xixi
coldplay.xixiOriginal
2020-09-28 10:39:202701Durchsuche

MySQL-Methode zum Suchen nach automatisch inkrementierenden Spalten: 1. Verwenden Sie [select max(id) from tablename] 2. Verwenden Sie [SELECT LAST_INSERT_ID()] 3. Verwenden Sie [select @@IDENTITY]; ].

So suchen Sie nach automatisch inkrementierenden Spalten in MySQL

MySQL-Methode zur Suche nach automatisch inkrementierenden Spalten:

1, select max(id) from tablenameselect max(id) from tablename

2、SELECT LAST_INSERT_ID()

LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。

在多用户交替插入数据的情况下max(id)显然不能用。这时就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的 Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insert or update 操作生成的第一个record的ID。这个值不能被其它客户端(Connection)影响,保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加锁。使用单INSERT语句插入多条记录, LAST_INSERT_ID返回一个列表。

3、select @@IDENTITY;

@@identity 是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。

比如有个表A,它的自增列是id,当向A表插入一行数据后,如果插入数据后自增列的值自动增加至101,则通过select @@identity得到的值就是101。使用@@identity的前提是在进行insert操作后,执行select @@identity的时候连接没有关闭,否则得到的将是NULL值。

4、SHOW TABLE STATUS;

2, SELECT LAST_INSERT_ID()

LAST_INSERT_ID hat nichts mit der Tabelle zu tun. Wenn Sie Daten in Tabelle a und dann Daten in Tabelle b einfügen, ändert sich LAST_INSERT_ID.

Max(id) kann offensichtlich nicht verwendet werden, wenn mehrere Benutzer abwechselnd Daten eingeben. Zu diesem Zeitpunkt ist es an der Zeit, LAST_INSERT_ID zu verwenden, da LAST_INSERT_ID auf Connection basiert. Solange jeder Thread ein unabhängiges Connection-Objekt verwendet, gibt die Funktion LAST_INSERT_ID die ID des ersten Datensatzes zurück, der durch den letzten Einfüge- oder Aktualisierungsvorgang generiert wurde Verbindung in der Spalte AUTO_INCREMENT. Dieser Wert kann nicht von anderen Clients (Verbindungen) beeinflusst werden, sodass Sie Ihre eigene ID abrufen können, ohne sich um die Aktivitäten anderer Clients kümmern zu müssen und ohne sie zu sperren. Verwenden Sie eine einzelne INSERT-Anweisung, um mehrere Datensätze einzufügen. LAST_INSERT_ID gibt eine Liste zurück. 3. select @@IDENTITY;

@@identity stellt den Wert der entsprechenden Auto-Inkrement-Spalte dar, als Daten zuletzt in eine Tabelle mit dem Identitätsattribut eingefügt wurden (d. h. Auto-Inkrement-Spalte). ). Es handelt sich um eine systemdefinierte globale Variable. Im Allgemeinen beginnen systemdefinierte globale Variablen mit @@ und benutzerdefinierte Variablen mit @. 🎜🎜Zum Beispiel gibt es Tabelle A und ihre Spalte mit automatischer Inkrementierung ist id. Wenn eine Datenzeile in Tabelle A eingefügt wird und der Wert der Spalte mit automatischer Inkrementierung nach dem Einfügen der Daten automatisch auf 101 erhöht wird, wird der Wert angezeigt Durch Auswahl von @@identity erhalten Sie den Wert 101. Voraussetzung für die Verwendung von @@identity ist, dass nach der Einfügeoperation die Verbindung beim Ausführen von select @@identity nicht geschlossen wird, da das Ergebnis sonst ein NULL-Wert ist. 🎜🎜4. TABELLENSTATUS ANZEIGEN;🎜🎜Im Ergebnis gibt es ein Auto_inkrement-Feld im entsprechenden Tabellennamen-Datensatz. Der Wert der nächsten Auto-Inkrementierungs-ID ist der aktuelle maximale Auto-Inkrementierungs-ID. Erhöhen Sie die ID der Tabelle. 🎜🎜🎜Weitere verwandte kostenlose Lernempfehlungen: 🎜MySQL-Tutorial🎜(Video)🎜🎜

Das obige ist der detaillierte Inhalt vonSo suchen Sie nach automatisch inkrementierenden Spalten in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn