Как я знаю, когда поле / строка в MySQL успешно обновлено? - PullRequest
2 голосов
/ 04 сентября 2011

Прямо сейчас у меня есть настройки базы данных, чтобы я вставил новую строку. Но если строка, которую я пытаюсь вставить, является дубликатом (на основе моего первичного ключа id), то я увеличиваю поле подсчета на 1.

Сейчас я хочу знать, когда я смог создать новую строку вместо того, чтобы иметь счетчик приращений. Как бы я сделал это эффективно / правильно?

Текущий метод, который я собираюсь сделать, это сначала запросить id и проверить, существует ли он. Но я чувствую, что есть более быстрый / лучший способ. Я также читал о триггерах, но слышал, что ими плохо / рискованно пользоваться.

Ответы [ 4 ]

2 голосов
/ 04 сентября 2011

Использовать INSERT ... ON DUPLICATE KEY UPDATE... Затем запросить затрагиваемых_волок (как предложил @Tarek Fadel).MySQL вернет 1, если строка была вставлена, или 2, если существующая строка была обновлена.

0 голосов
/ 04 сентября 2011

Как насчет auto_increment в столбце id?

В противном случае вы можете использовать SELECT MAX(id) FROM TABLE, чтобы получить самый высокий идентификатор и добавить его к нему, но это не является поточно-ориентированным, поскольку другой пользователь может выполнить такую ​​же вставку одновременно. Auto_increment исправит это для вас.

0 голосов
/ 04 сентября 2011
0 голосов
/ 04 сентября 2011

Используйте вашу базу данных AUTO INCREMENT для вашего основного поля ID. Только пропер раствор.

Здесь у вас есть ссылка на mysql, но она есть только в каждом движке базы данных: http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...