Mysql
 sql >> база данни >  >> RDS >> Mysql

Добавете 1 към поле

Дават ли ми мода за това?

$sql = "UPDATE skills SET level = level+1 WHERE id = $id";
$result = $db->sql_query($sql);
$db->sql_freeresult($result);

В конкретния случай на Teifion, phpBB DDL изброява това конкретно поле като NOT NULL, така че няма опасност от увеличаване на NULL.

В общия случай не трябва да използвате NULL за представяне на нула. Увеличаване на NULL трябва дайте отговор NULL. Ако сте от типа заблуден разработчик, който мисли NULL=0, отдръпнете се от клавиатурата и си намерете друго забавление, вие просто затруднявате живота на останалите от нас. Разбира се, това е компютърната индустрия и кои сме ние, за да кажем, че грешите? Ако не грешите, използвайте

$sql = "UPDATE skills SET level = COALESCE(level,0)+1 WHERE id = $id";

...но нека си признаем:грешите. Ако всички започват от ниво 0, тогава вашият DDL трябва да включва

level INT DEFAULT '0' NOT NULL

в случай, че програмистите забравят да го зададат, когато създават запис. Ако не всички стартират на ниво 0, тогава пропуснете DEFAULT и принудете програмиста да предостави стойност при създаване. Ако някои хора са отвъд нивата, за които наличието на ниво е безсмислено нещо, тогава добавянето на едно към тяхното ниво също няма смисъл. В такъв случай махнете NOT NULL от DDL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. не може да се свърже с MySQL база данни чрез външен IP адрес

  2. Изключение за хибернация на MySQL Cross Join Query

  3. Кой е най-добрият начин да правите инкрементални архиви в MySQL?

  4. Добавяне на изображение към blob (mysql) чрез c#

  5. Преместване на възел във вложен набор