безумие
верно, особенно если про биллинг внутри счетов компании. запрос упал и пизда, бабло спимали но не прибавили :-))
Форум → Программирование → PHP для идиотов → Всегда задавался этим вопросом, Myisam или innodb
Страницы: ← Предыдущая страница →
Авг. 1, 2011, 5:09 п.п., спустя 2 минуты 33 секунды
безумие
Авг. 1, 2011, 9:54 п.п., спустя 4 часа 44 минуты 49 секунд
Авг. 2, 2011, 5:49 д.п., спустя 7 часов 55 минут 40 секунд
Авг. 2, 2011, 2:45 п.п., спустя 8 часов 55 минут 24 секунды
, кстати странно но в документации я про них ничего не наяшел
дык че стригеррами, у меня они нивкакую не встают
Авг. 3, 2011, 5:16 д.п., спустя 14 часов 31 минуту 48 секунд
Авг. 3, 2011, 8:29 д.п., спустя 3 часа 12 минут 20 секунд
Авг. 3, 2011, 11:28 д.п., спустя 2 часа 59 минут 42 секунды
версия 5.1.54
блядь, а я то губу раскатал
DROP TRIGGER IF EXISTS `TRIGGER_TABLE2_AI`;
DROP TABLE IF EXISTS `table2`;
DROP TABLE IF EXISTS `table1`;
CREATE TABLE `table1` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`count` INTEGER UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY(`id`)
) ENGINE='InnoDB';
CREATE TABLE `table2` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`table1_id` INTEGER UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY(`id`)
) ENGINE='InnoDB';
ALTER TABLE `table2`
ADD CONSTRAINT `FK_TABLE2_TABLE1_ID`
FOREIGN KEY `FK_TABLE2_TABLE1_ID` (`table1_id`)
REFERENCES `table1`(`id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
# заменяем разделитель с ";" на "//"
DELIMITER //
# создаём триггер
CREATE TRIGGER `TRIGGER_TABLE2_AI` AFTER INSERT ON `table2`
FOR EACH ROW
BEGIN
UPDATE `table1` SET `count`=`count`+1 WHERE `id`=NEW.`table1_id` LIMIT 1;
# вот тут был косяк, так как MySQL думал, что раз ; получена значит
# конец выражения достигнут, а так как был BEGIN а END ещё не найден,
# возникает ошибка, но если использовать замену ; на // как сейчас,
# ; не будет воспринята как разделитель, и выражение будет считываться,
# пока не найдётся "//"
END //
# конец выражения, все ок, оно валидно с точки срения SQL, так как для BEGIN
# есть закрывающий END
# возвращаем разделитель ";", а то и дальше придётся везде вместо ; писать //
DELIMITER ;
Авг. 4, 2011, 6:35 д.п., спустя 19 часов 6 минут 59 секунд
Авг. 7, 2011, 7:03 п.п., спустя 3 дня 12 часов 27 минут
Авг. 11, 2011, 2:24 д.п., спустя 3 дня 7 часов 20 минут
`last_theme` VARCHAR(100) NULL, – заголовок последней добавленной темы
`last_theme_date` DATETIME, – дата последней темы
`last_theme_uid`INT(11) UNSIGNED – id юзера кто добавил
`last_theme_username` VARCHAR(20) NULL, – имя юзера
`last_theme_id` INT(11) UNSIGNED – id последней темы
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!