Я предпочитаю графический интерфейс при создании таблиц, потому что лучше визуализировать макет. В GUI-дизайнере можно добавить описание для таблицы и столбцов в окне свойств, как показано на рисунке ниже [/g0]
Для этого достаточно простого инкремента.
UPDATE mytable
SET logins = logins + 1
WHERE id = 12
Если вы хотите обновить ранее существующую строку или вставить ее, если она еще не существует, вы можете использовать синтаксис REPLACE
или опцию INSERT...ON DUPLICATE KEY UPDATE
(Как Rob Van Dam продемонстрировал в своем ответе).
Или, возможно, вы ищете что-то вроде INSERT...MAX(logins)+1
? По сути, вы должны выполнить запрос, похожий на следующий - возможно, немного более сложный в зависимости от ваших конкретных потребностей:
INSERT into mytable (logins)
SELECT max(logins) + 1
FROM mytable
Я не эксперт в MySQL, но вам, вероятно, следует посмотреть на триггеры, например ПЕРЕД ВСТАВКОЙ. В триггере вы можете запустить запрос выбора для исходной таблицы, и если он что-то обнаружил, просто обновите строку «логины» вместо того, чтобы вставлять новые значения. Но все это зависит от версии MySQL, которую вы используете.
Если вы можете безопасно сделать (firstName, lastName) ПЕРВИЧНЫЙ КЛЮЧ или, по крайней мере, поместить на них УНИКАЛЬНЫЙ ключ, то вы можете сделать следующее:
INSERT INTO logins (firstName, lastName, logins) VALUES ('Steve', 'Smith', 1)
ON DUPLICATE KEY UPDATE logins = logins + 1;
Если вы не можете этого сделать, вам придется сначала получить то, что является первичным ключом, поэтому я не думаю, что вы могли бы достичь того, чего хотите, с помощью одного запроса.
Вы не сказали, что вы пытаетесь сделать, но вы достаточно хорошо намекнули на это в комментариях к другому ответу. Я думаю, что вам, вероятно, нужен столбец с автоматическим инкрементом
create table logins (userid int auto_increment primary key,
username varchar(30), password varchar(30));
, тогда при вставке не потребуется никакого специального кода. Просто
insert into logins (username, password) values ('user','pass');
В MySQL API есть функции, позволяющие узнать, какой userid был создан при выполнении этого оператора в клиентском коде.