INSERT INTO logins (ID) VALUES ((SELECT COUNT (ID) FROM logins)) Не работает

Я пытаюсь вставить данные в свою таблицу, так что поле id больше, чем мой предыдущий максимальный id. Например, если бы у меня было зарегистрировано 21 пользователь, и еще один был добавлен, тогда идентификатор пользователей был бы равен 21 (обратите внимание, что мои идентификаторы начинаются с 0). Я попробовал это:

mysqli_query($con,"INSERT INTO logins (ID,UserName)
 VALUES ((SELECT COUNT(ID) FROM logins),'$username')");

Это сообщение об ошибке: # 1093 - Вы не можете указать логины целевой таблицы для обновления в предложении FROM

Я также пробовал это, что работает:

$result=mysqli_query($con,"SELECT ID FROM logins WHERE ID=(SELECT MAX(ID) FROM logins)");
 while ($db_field = mysqli_fetch_assoc($result)) 
 {
 $id=$db_field['ID']+1;
 mysqli_query($con,"INSERT INTO logins (ID, UserName)
 VALUES ('$id','$username'");
 break;
 }

Но я ищу способ сделать это с помощью одной команды. Заранее спасибо.

1 ответ

Я предлагаю вам сделать id основным ключом таблицы и включить AUTO_INCREMENT. Затем вы можете удалить столбец id из вашего запроса, и увеличение идентификатора будет добавлено автоматически.

licensed under cc by-sa 3.0 with attribution.