lioncub
Новичок
Заменяющий триггер mysql
Есть таблица:
CREATE TABLE `traffic` (
`id` int AUTO_INCREMENT NOT NULL,
`name` varchar(45) NOT NULL,
`money` int NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE = MyISAM;
Как реализовать такой механизм, чтобы при обновлении записи, если такой не существует, то происхродит вставка этой записи?
DELIMITER |
CREATE TRIGGER `ins_row`
BEFORE UPDATE
ON `user`
FOR EACH ROW
BEGIN
DECLARE exists_id INTEGER;
SET exists_id=(SELECT id FROM user
WHERE name=NEW.name);
IF exists_ip IS NULL
THEN
INSERT INTO user SET name=NEW.name;
END IF;
END|
DELIMITER ;
примерно, такое....
или можно наоборот при вставке, если такое поле (name) существует, то выполняется только update
Есть таблица:
CREATE TABLE `traffic` (
`id` int AUTO_INCREMENT NOT NULL,
`name` varchar(45) NOT NULL,
`money` int NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE = MyISAM;
Как реализовать такой механизм, чтобы при обновлении записи, если такой не существует, то происхродит вставка этой записи?
DELIMITER |
CREATE TRIGGER `ins_row`
BEFORE UPDATE
ON `user`
FOR EACH ROW
BEGIN
DECLARE exists_id INTEGER;
SET exists_id=(SELECT id FROM user
WHERE name=NEW.name);
IF exists_ip IS NULL
THEN
INSERT INTO user SET name=NEW.name;
END IF;
END|
DELIMITER ;
примерно, такое....
или можно наоборот при вставке, если такое поле (name) существует, то выполняется только update