|
Тема |
Re: MySql въпрос [re: edembg] |
|
Автор |
salle (един такъв) |
|
Публикувано | 20.02.04 12:38 |
|
|
"Ако няма трябва да го създам и да взема ID"
А ако го има какво правиш? Пак ли ти трябва ID?
В най-лошия случай ти трябват 3 заявки. За какво са ти 4?
Втори въпрос - това, което описваш означава ли, че user,a,b е уникална комбинация? Ако да добави един UNIQUE ключ. Предпалага се, че ID вече ти е Първичен (PRIMARY KEY)
Ако те интересува ID само в случай, че вмъкваш нов запис тогава просто правиш INSERT и проверяваш за грешка. Уникалния ключ ще се погрижи да ти върне грешката. Ако няма грешка взимаш SELECT LAST_INSERT_ID() и готово - 1 или 2 заявки.
Допълнителна разлика е че така гарантираш, че няма да се появят два еднакви реда. Иначе трябва да заключваш таблицата преди цялата последователност и да я отключваш после
Ако ID винаги те интересува, което е доста по-логичния вариант пак минаваш с 1 или 3 заявки
SELECT ID FROM tbl WHERE user = "abc" AND а = 0 AND b = 0';
Ако върне ID си готов - 1 заявка.
Ако върне празен резултат
INSERT INTO tbl (user, a, b) VALUES('abc', 0, 0);
SELECT LAST_INSERT_ID();'
3 заявки
|
| |
|
|
|