Показать сообщение отдельно
Старый 26.09.2011, 22:49   #13
shybovycha
ПроЭктировщик
 
Аватар для shybovycha
 
Регистрация: 27.05.2007
Сообщений: 110
Написано 40 полезных сообщений
(для 33 пользователей)
Ответ: Определить количество записей, вставить запись!!!???

Учите основы SQL: используйте транзакции. Кроме транзакции, придется использовать либо сохраненную процедуру, либо триггер BEFORE INSERT. С процедурой проще:

DELIMITER //;
CREATE PROCEDURE add()
BEGIN
SELECT @x = COUNT(id) FROM table;
IF @x < 10 THEN
INSERT INTO table ([fields]) VALUES ([field values]);
END IF;
END;
DELIMITER ;//
Потом - собсно транзакция и вызов процедуры:

START TRANSACTION;
CALL add();
COMMIT;
Объяснять как работают транзакции не буду. Скажу лишь, что коль в транзакции ничего не добавилось в таблицу - ничего страшного. А вот если ошибка вылезет - данные не изменятся. В этом и профит транзакций (кроме параллельных операций).

И да, LOCKS - наверное самая забавная идея, которую довелось слышать за неделю мне =)

Для тех, кто не понял сарказма: запросы следует выполнять лишь тогда, когда?

а) нужно получить данные
б) нужно сохранить уже готовые данные

С триггером придется поиграться...
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (26.09.2011)