Подтвердить что ты не робот

PHP-MySQL-Как безопасно увеличивать целочисленное поле MySQL?

Я хочу безопасно увеличивать значение поля с помощью php и mysql.

  • Какой тип таблицы/поля я должен использовать?

  • Есть ли минимальная версия MySQL, которую я должен использовать?

  • Что такое код sql для этой безопасной транзакции для MySQL?

4b9b3361

Ответ 1

В каком типе "таблицы" я предполагаю, что вы имеете в виду механизм хранения. Все, что поддерживает мутации (т.е. Не "архив" или "черная дыра" )

Любое числовое поле будет делать (tinyint, int, float и т.д.). Тем не менее, нет специального PHP-кода, просто SQL для увеличения требуемого поля:

UPDATE table SET field = field + 1 WHERE [...]

Если вы хотите выполнить транзакцию, поместите вышеуказанный запрос в транзакцию. Что касается версии MySQL, я согласен с @hsz - используйте самую последнюю версию.

Ответ 2

Если вы говорите о первичном ключе, установите столбец id как primary и auto_increment.

Увеличение поля выглядит следующим образом:

UPDATE table SET field = field + 1 WHERE id = 9

О версии MySQL - используйте новейшую версию.;)
> 5.0 будет в порядке.

Ответ 3

1.Какой тип таблицы/поля я должен использовать?

- > Тип таблицы зависит от того, что вы запланировали для своего приложения. Это может быть Innodb или Myisam. Я предлагаю вам использовать числовой столбец, чтобы вы могли увеличивать/уменьшать их. НЕ делайте это НЕ ЗНАКОМ, если вы планируете разрешить отрицательные числа.

Здесь указаны пределы, которые могут оказаться полезными при объявлении длины столбца:

TINYINT (length)  - 1 - Integer with unsigned range of 0-255 and a signed range from -128-127
SMALLINT (length)  - 2 - Integer with unsigned range of 0-65535 and a signed range from -32768-32767
MEDIUMINT(length)  - 3 -  Integer with unsigned range of 0-16777215 and a signed range from -8388608-8388607
INT(length)   - 4 - Integer with unsigned range of 0-429467295 and a signed range from -2147483648-2147483647
BIGINT(length)   - 8 -  Integer with unsigned range of 0-18446744 and a signed range from
-9223372036854775808-9223372036854775807

2. Есть ли минимальная версия MySQL, которую я должен использовать?

- > Просто использовать автоинкремент? Вы хорошо используете последнюю версию. Я предлагаю что-то > 5.2.4, если это возможно.

3.Какой код sql для этого, безопасная транзакция для MySQL?

- > Извините, на данный момент нет ответа.